300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 静态成员 概念_Java成员变量 局部变量 静态变量 成员方法 全局方法等概念的区别...

java 静态成员 概念_Java成员变量 局部变量 静态变量 成员方法 全局方法等概念的区别...

时间:2023-01-15 07:11:09

相关推荐

java 静态成员 概念_Java成员变量 局部变量 静态变量 成员方法 全局方法等概念的区别...

成员变量的生命周期

声明对象后,对该对象的访问需要依靠引用变量(栈中的c),那么当一个对象没有任何引用时,该对象被视为废弃的对象,属于被回收的范围,同时该对象中的所有成员变量也随之被回收。

成员变量的生命周期为:从对象在堆中创建开始到对象从堆中被回收结束。

请看如下的代码,演示了对象不再被引用:

Cell c = new Cell();

c = null ;

当将c赋值为null时,表示c不再指向刚刚分配的对象空间,此时成员变量失效。

局部变量的生命周期

一个运行的Java程序从开始到结束会有多次方法的调用。

JVM会为每一个方法的调用在栈中分配一个对应的空间,这个空间称为该方法的栈帧。一个栈帧对应一个正在调用中的方法,栈帧中存储了该方法的参数、局部变量等数据。

当某一个方法调用完成后,其对应的栈帧将被清除,局部变量即失效。

成员变量和局部变量对比

成员变量(全局变量):

1) 定义在类中,方法外(在整个类中都可以被访问)

2) 由系统设定默认初始值,可以不显式初始化

3) 所在类被实例化后,存在堆中,对象被回收时,成员变量失效

局部变量:

1) 定义在局部范围内

2) 没有默认值,必须自行设定初始值

3) 方法被调用时,存在栈中,方法调用结束时局部变量从栈中清除 [即对应的栈帧被清除]

在使用变量时需要遵循的原则为:就近原则

首先在局部范围找,有就使用;接着在成员位置

_________________________________________________________________________________________________________

静态变量(也叫做类变量,类属性)

由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。

成员变量和静态变量的对比

1、两个变量的生命周期不同

成员变量随着对象的创建而存在,随着对象被回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

2、调用方式不同

成员变量只能被对象调用。

静态变量可以被对象调用,还可以被类名调用。

3、别名不同

成员变量也称为实例变量

静态变量也称为类变量

4、数据存储位置不同

成员变量存储在堆内存的对象中,所以也叫对象的特有数据。

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。