成员变量与局部变量的区别 内存管理 垃圾回收机制

成员变量与局部变量的区别:
成员变量
定义位置:在方法外,类体中
默认值:有默认值,构造器中可以不对成员变量初始化
内存位置:在堆中
生命周期:从对象实例化开始出现,到对象消失
局部变量
定义位置:在方法内(包含小括号内的形参)
默认值: 没有默认值,必须初始化再使用
内存位置:在栈帧中

生命周期:从声明时开始,到方法结束后,栈帧消失时。

垃圾回收机制:(GC)
jvm的一个独有线程(程序),用于回收没有任何引用指
向的对象。

 System.out.println((new Person()).name);
      上述产生的对象,以后再也无法使用,如果类似的这样情况
     有很多,对象来不及被处理,内存剩余空间就会越来越小,
     有可能出现内存溢出情况。

     因此需要一个处理机制,即垃圾回收机制。没有被引用的对象
     会被视为垃圾,等待GC被回收 
 (因为有垃圾绘制机制,所有java程序猿无需单向内存

溢出或泄露情况)

内存管理:
jvm将内存分成三大主要区域,堆,栈,方法区,用来存储数据。

堆(heap): 存储new出来的对象,给成员变量分配空间        
栈(stack):jvm在执行程序时,在栈中,会为每一个方法分配一
        个空间(即栈帧),用来存储方法的局部变量。
 方法区:  用来存储jvm加载的字节码文件的信息(类的信息)
          包含类的方法,方法只有一份,堆中的对象共享
          这份方法,在使用非static修饰的方法时,需要
          对象来调用(即动态绑定到对象上) 

重点内容

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值