Java 中静态变量与实例变量的区别
2011-05-07 12:27
260 查看
java类的成员变量有俩种:
一种是被static关键字修饰的变量,叫类变量或者静态变量
另一种没有static修饰,为实例变量
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
public class Temp {
int t; //实例变量
public static void main(String args[]){
int t=1; //局部变量
System.out.println(t
); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t
); //通过实例访问实例变量
}
}
结果为:
1
0 (成员变量具有缺省值 而局部变量则没有
)
把代码改为
public class Temp {
static int t; //类变量
public static void main(String args[]){
System.out.println(t
); //打印类变量
int t=1; //局部变量
System.out.println(t
); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t
); //通过实例访问实例变量
}
}
结果则为
0
1
0
链接地址:http://sumdwang.blog.163.com/blog/static/79296950200911611109779/
一种是被static关键字修饰的变量,叫类变量或者静态变量
另一种没有static修饰,为实例变量
类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。
而实例变量取决于类的实例。每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆区中,其生命周期取决于实例的生命周期。
public class Temp {
int t; //实例变量
public static void main(String args[]){
int t=1; //局部变量
System.out.println(t
); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t
); //通过实例访问实例变量
}
}
结果为:
1
0 (成员变量具有缺省值 而局部变量则没有
)
把代码改为
public class Temp {
static int t; //类变量
public static void main(String args[]){
System.out.println(t
); //打印类变量
int t=1; //局部变量
System.out.println(t
); //打印局部变量
Temp a= new Temp(); //创建实例
System.out.println(a.t
); //通过实例访问实例变量
}
}
结果则为
0
1
0
链接地址:http://sumdwang.blog.163.com/blog/static/79296950200911611109779/
相关文章推荐
- java基础 4、静态变量和实例变量的区别
- Java中静态变量和实例变量的区别?&和&&
- 【高薪就业必备11】java中静态变量和实例变量的区别?
- java中静态变量和实例变量的区别详细介绍
- 【Java面试题】4 静态变量和实例变量的区别?详细解析
- Java中静态变量与实例变量的区别
- Java中静态变量和实例变量的区别?&和&&
- 解析Java中静态变量与实例变量的区别
- java中静态变量和实例变量到底有什么区别_看了就知道啦
- 解析Java中静态变量与实例变量的区别
- Java中静态变量和实例变量的区别
- 解析Java中静态变量与实例变量的区别
- java 中静态变量和实例变量之间的区别
- 解析Java中静态变量与实例变量的区别
- java中静态变量和实例变量到底有什么区别
- java 静态变量和实例变量的区别
- Java中静态变量与实例变量的区别
- Java 中静态变量和实例变量区别
- Java 中静态变量与实例变量的区别
- 解析Java中静态变量与实例变量的区别