变量分类
1. 类变量
l 在类定义中使用关键字static修饰的字段
l 在接口声明中使用或者不使用static修饰的字段
说明:当准备好类或接口时就会创建一个类变量并将其初始化为一个默认值。当卸载类或接口时,就会有效的使类变量停止存在
2. 实例变量
在类声明中不使用关键字static声明的字段
3. 数组元素(未命名的变量)
无论何时创建一个作为数组的新对象,都会创建这些变量并将其初始化为默认值。当数组不在被引用时,就会有效地使数组元素停止存在。
4. 方法参数变量
对于方法声明中声明的每个参数,当调用该方法时,都会创建一个新的参数变量。新变量会用来方法调用的相应的参数值进行初始化。当方法体执行完成时,就会有效地是方法参数停止存在。
5. 构造函数参数变量
对于构造函数中声明的每个参数,每当类实例创建表达式或显示构造函数调用调用该构造函数时,就会创建一个新的参数变量。新变量会用来自创建表达式或构造函数调用的相应的参数值进行初始化。当构造函数体执行完成时,就会有效地使构造函数参数停止存在。、
6. 异常处理程序参数变量
每当catch语句或者try语句捕获一个异常时,就会创建一个异常处理程序参数。新变量会用与异常关联的实际对象进行初始化。当与catch子句关联的代码块执行完成时,就会有效地使异常处理程序参数停止存在。
7. 局部变量
通过局部变量声明语句声明的变量。局部变量使用前一定要赋值。局部变量不会自动初始化为默认值
8. Final变量
Final修饰的变量,只能被赋值一次,除非在赋值之前明确地取消对fianl变量进行赋值,否则,对final变量赋值,将会引发编译时错误。
变量的初始值
在使用变量值之前,程序中每个变量都必须有一个值:
1. 每个类变量、实例变量或数组元素都会在创建时使用默认值对其进行初始化,以下是java中数据类型与其默认值的对应关系
byte、short、int :0
long :0L
float :0.0f
double :0.0d
char :空字符(即:/u0000)
boolean :false
应用类型 :null
2. 每个方法的参数都会被初始化为方法调用者提供的对应参数值
3. 每个构造函数参数都会被初始化为类实例创建表达式或显示构造函数调用提供的对应参数值
4. 异常处理程序参数将被初始化为抛出一个表示异常的duix
5. 在使用局部变量之前,必须通过初始化或赋值显示地为其赋值,编译器可以使用明确赋值的规则对这种赋值方式ing验证
文章出自CSDN,http://blog.csdn.net/shibenjie/article/details/4331693
这两个怎么比。。。。