1、java当中变量什么时候需要初始化?
成员变量:不管有没有显式的初始化,java虚拟机都会先给它初始化默认值。
局部变量:负责接收一个表达式值的局部变量可以不初始化,参与运算和直接输出等其他情况的局部变量必须初始化。
总之:属性(成员变量)可以不初始化,局部变量参与运算之前必须赋值
2、空引用(null)只能被转换成引用类型,不能转换成基本类型,所以不要把一个null值赋值给基本数据类型的变量,也不可用基本类型和null做比较判断。
3、null直接量可以赋值给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即未指向任何有效对象。
4、基本类型之间赋值:小的可以赋值给大的(java进行自动类型转换)大类型赋值给小类型,需要加强类型转换。
这里需要注意:String类型的直接量不能赋给其他类型的变量,null类型的直接量可以直接赋值给任何引用类型的变量,包括String类型。Boolean类型的直接量只能赋值给Boolean类型变量,不能赋值给其他类型的变量。
5、java中赋值表达式连续赋值:a=b=c=1(可读性低)
6、java比较运算符:“==”如果进行比较,对于数值类型,只要两边的值相等即可,对于引用对象来说,两个引用必须指向同一个对象才会返回true,或者指向同一常量返回true,否则为false
注意:基本类型的变量、值不能和引用类型的变量、值使用==进行比较;Boolean类型的变量、值不能与其他任意类型的变量、值使用==比较,如果两个引用类型之间没有父子继承关系,那么它们的变量也不能使用==进行比较
7、java中,引用类型对象采用“==”比较的是对象的地址值,采用“equals”在该对象重写了equals方法的情况下比较的是对象指向的内容
8、java语言中大部分运算符是从左到右结合的,只有单目运算符、赋值运算符和三目运算符例外(采用从右往左运算)