学习Java挺长时间了,对于java中的基本知识虽然平时知道怎么用,但是有的时候还是有些难以理解。今天把Java中的实例变量、局部变量、类变量与final变量之间的关系的思路重新整理一遍,在此分享一下。
首先先说一下局部变量:这是我们接触java或者其他编程语言最早接触的东西,他定义在方法中,使用之前必须进行初始化,且生命周期尽在该方法中有效。
实例变量:只有在实例化对象后才可以使用,变量归对象所有。每当实例化一个对象时,总会创建一个副本并初始化,如果没有进行显式的初始化,则会初始化一个默认值。各个实例化对象的副本之间互相独立,之间没有耦合。
类变量:该变量使用static修饰符修饰,随着类的加载而可以使用(类名.变量名),属于类所有。在程序中仅加载一次,分配独立的存储空间(静态区),所有实例化的对象共享类变量。
final变量:使用static final 修饰,表示该变量为常量,显示初始化之后不可以被修改,类似于C/C++中的全局变量,虽然Java中并不是这种叫法。
代码举例:
public class VariableTest {
char ch = 'a';
public static int numInt = 100; //成员变量
public staitc int testStatic() {
static final int i = 2; // static final 变量
int x = 5; //局部变量
System.out.println(i+x);
}
public static void main(String[] args){
System.out.println(Variable.numInt);
VariableTest test = new VariableTest();
test.testStatic();
System.out.println(test.ch);
}
}
运行结果:
100
7
a