实例变量永远都会有默认值,若是你没有明确的赋值给实例变量,或者没有调用setter,实例变量仍是会有值!ide
integers 0 floating points 0.0 booleans false reference null
所以,你无需初始实例变量,由于他们会有默认值。数字的primitive(包括char)的预设为0,boolean的预设为false,而对象引用则为null。code
要记得null表明没有操做对象的远程控制,它是个引用而不是对象。对象
咱们来看看实例变量与局部变量之间的差异:编译器
一、实例变量是声明在类内而不是方法中。it
二、局部变量是声明在方法中的。编译
三、局部变量在使用前必须初始化。class
局部变量没有默认值,若是在变量被初始化前就要使用的话,编译器会显示错误。变量
那么方法的参与与局部变量也是同样的吗?数据类型
方法的参数基本上与局部变量是相同的,可是方法不用担忧其未声明的问题,由于在调用的时候,编译器就会检查你是否合法的传参与调用这个方法了。引用
对于变量的比较(primitive主数据类型或引用)
使用==来比较两个primitive主数据类型,或者判断两个引用是否引用同一个对象。
使用equals来判断两个对象是否在乎义上相等。