书接上回,花开两枝
类型转换- 类型转换是有顺序的,从低到高依次是这样的顺序,其中,在单纯的数据类型转换时,低位数据到高位数据之间的转换是不自觉的,需要强制转换,转换方法是在数据前加(数据类型)
-
在运算的过程中,如果存在不同的数据,那么所有数据都会向高位数据转换,这个过程不需要强制转换,是自动转换
-
小的数据如byte如果储存了过大数据则会出现数据溢出,解决方法是将其转化为更大的数据类型
-
变量是储存在内存当中的可变的量(var),与之对应的是常量(final)
-
变量必须要声明类型,可以是引用类型(string),可以是基本类型
-
定义变量的语法是
-
变量分为三种:类变量,实例变量,局部变量。其中类变量和实例变量都在方法之外,局部变量在方法当中。
-
类变量:从属于类本身,可以被类调用输出。
-
实例变量:在方法之外,可以在实例化之后被调用输出和修改。若不初始化则为默认值,其中string类型的默认值是null,数据是0,布尔值是false。
-
局部变量,在方法内部,可以被方法自由调用和修改。
-
常量用final声明,其本质为修饰符,并不在意顺序,且不属于数据类型,故其后需要声明类型。
-
基本运算符需要在意数据类型,不然可能数据溢出,在除法时要注意其可能出现浮点数,故需要强制转换。
-
在自增和自减中,顺序会代表不同的涵义,例如++a和a++不一样,前者表示先自增在赋值,后者表示先赋值在自增。其中值本身会变化
-
逻辑运算符:&&表示和(and),||表水或(or),!表示非(not)
-
位运算符可以加快速度:
A=0011 1100 B=1010 0101 ------------------------- A&B=0010 0100 同1则1,否则为0 A|B=1011 1101 有1则1,无1则0 A^B=1001 1001 相同为0,不同为1 ~A =1100 0011 有1则0,有0则1 >>右移 <<左移 可用于二进制运算,效率极高 移动相当于在二进制数当中左右移动,左移相当于*2,右移相当于/2