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、数据存储位置不同

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值