Java中静态变量Static的加载和Static垃圾回收

  • Java中类的生命周期为:

    • 1.加载

    • 2.连接

      • 2.1验证

      • 2.2准备

      • 2.3解析

    • 3.初始化

      • 类初始化的顺序

        • 3.1静态变量、静态代码块初始化

        • 3.2构造函数

        • 3.3自定义构造函数

    • 4.使用

      • 4.1对象初始化

      • 4.2垃圾收集

      • 4.3对象终结

    • 5.卸载

  • 其中静态变量Static修饰的

    • 加载:JVM在加载类的过程中为静态变量分配内存;

    • 类变量:static变量在内存中只有一个,放在方法区内,属于类变量,被所有实例共享;

    • 销毁:类被卸载时(进程结束/程序结束),静态变量被销毁,并释放内存空间;

  • 静态变量被销毁的过程

    • 好的,看到这里想回收静态变量应该是想多了;

    • Static修饰的成员变量和方法属于类,而普通的变量和方法属于对象;

    • 静态变量会常驻内存的方法区,当存在大量的静态变量时,性能就会变慢;

    • 除非进程结束或者重启才会被回收;

  • 普通变量的垃圾回收过程

    • 新生代(如果结束则收回)

    • 老年代(新生代存活下来的,如果在老年代结束则收回,否则强制Full GC,全局收回)

    • 永久代1.7以及之前(元空间1.8以及之后)

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨鑫newlfe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值