↗类变量:有static
↗成员变量(位置:类中定义成员变量)
↘实例变量:无static
Java变量
↗形参
↘局部变量(位置:方法中定义局部变量)→普通局部变量
↘代码块的局部变量
一、成员变量
- 可以不需要显式指定初始值 ,系统可以自动分配初始值
- 初始值规则与数组元素的初始值规则完全相同
【判断变量的顺序】
- 首先看位置
- 然后看static
(1)类变量
类变量属于类本身,当系统初始化类时,就会为类分别分配空间,并执行初始化。
(2)实例变量
实例变量属于对象本身,系统每次创建对象时,都需要为该对象的实例变量分配空间,并执行初始化。
【严格来说】
- 类变量应该由类本身进行访问。
- 实例变量应该由对象进行访问。
Java垃圾语法:允许通过对象来访问类变量。但实际上,Java依然会将对象替换成对象所属的类。
【建议】
永远用类调用类变量、类方法。
二、局部变量
- 放栈内存中
- 必须由程序员显式先制定初始值,然后才能使用——否则编译报错:可能尚未初始化变量xx。
- 局部变量的作用域很小,只在方法里有效;离开了方法,局部变量立即失效。
- 代码块的作用域很小,离开了代码块,代码块的局部变量就会失效。