Java学习疑点(2)

类中成员变量有两种类型,一种是在声明时被static修饰的静态变量(又称为类变量),为该类中每一个实例所共享。另一种叫做实例变量,由每个实例各自单独拥有,在功能上有这样的差异,两者的生命周期以及机制自然有所区别,下面作一总结

1,静态变量在Java虚拟机加载类时被创建并为其分配内存,位于方法区,就像类中方法一样被所有类的实例共享。所以其可以直接通过类名访问。当卸载类时静态变量被销毁并撤销所占用的内存。在一定意义上,静态变量的生命周期取决于对应类的生命周期。

2,类中每一个实例都有与之对应的实例变量。在创建类实例时,Java虚拟机会为实例变量分配特定的内存与该实例对应,实例变量储存在堆中。实例变量的生命周期取决于对应实例的生命周期,当创建实例的时候,实例变量被创建并分配内存,当销毁实例的时候,实例变量被销毁并撤销所占内存。

当成员变量(包括静态变量和实例变量)为引用类型时,该变量结束生命周期时,并不一定意味着它所引用的对象的生命周期也同时结束。

变量的生命周期和对象的生命周期是不同的概念,两者不可以混淆。

记住静态变量是属于整个类共享的,而实例变量属于特定的实例,两者结构和功能上的体现了面向对象编程的一个特性。

多对自己说“我能行,我一定可以”,

Java学习疑点(2)

相关文章:

你感兴趣的文章:

标签云: