20180228 java 变量
成员变量又叫 字段,java中没有全局变量的概念。
局部变量:变量除了成员变量,其他的都叫局部变量,局部变量有以下三种形式:
1、方法内部的变量;
2、方法的形参;
3、代码块中的变量。
变量的初始值:
成员变量:默认是有初始值的,它的初始值为 0或 null
局部变量:没有初始值,必须先初始化才能使用。
变量的作用域:
变量根据定义的位置不同也决定了各自的作用域不同。
成员变量:在整个类中都有效。看变量所在的那对花括号{}
局部变量:从开始定义的位置开始,到紧跟着结束的花括号{}。
变量的生命周期和选用:
| 存在位置 | 生命周期开始 | 生命周期结束 | 在内存中的位置 |
类变量 | 是字段,使用static修饰 | 当所在字节码被加载到JVM,此过程优先于对象 | 当JAVA虚拟机停止工作时。 | 方法区 |
实例变量 | 是字段,没有使用static修饰 | 创建所在类对象的时候 | 当该对象被GC回收。 | 堆中 |
局部变量 | 方法形参、代码块中,方法内 | 当代码执行到初始化变量的时候 | 所在的方法或代码块结束的时候。 | 栈中(当前方法的栈帧中) |
不要轻易使用static修饰成员,一般定义工具方法时,或使用static方法需要访问的变量时,或者该成员需要属于该类时,才使用static修饰成员。
也不要轻易使用成员变量,因为存在线程不安全的问题。
所以尽量使用局部变量。