定义变量:
数据类型 变量名 = 值
变量类别:
成员变量:
类成员变量:使用static修饰
实例成员变量:没有static修饰
局部变量:
方法内部的变量
方法的形参
代码块中的变量{}
变量处室值:
成员变量有初始值
局部变量没有初始值,必须初始化之后才能使用
变量作用域:
成员变量:在整个类中有效
局部变量:在开始定义的位置,到紧跟着结束的花括号
总之,成员变量可以先使用后定义,而局部变量必须先定义后使用
变量的作用域不同,则变量的生命周期也不同,声明周期指的是一个变量被创建并分配内存空间开始,到该变量被销毁并清除所占内存空间的过程;
存在位置 | 生命周期开始 | 生命周期结束 | 在内存中的位置 | |
类变量 | 字段,使用static修饰 | 所在字节码被加载进JVM | JVM停止 | 方法区 |
实例变量 | 字段,没有使用static修饰 | 对象创建的时候 | 对象被GC回收 | 堆 |
局部变量 | 方法形参、代码块、方法内 | 代码执行到初始化变量的时候 | 所在方法/代码块执行结束 | 当前方法的栈帧中 |
实际的开发中尽量缩小变量的作用范围,在内存中停留时间越短,性能也就越高;