• JVM之类的生命周期


    生命周期:类的加载->连接->初始化->使用->卸载

    一、类的加载

      查找并加载类的二进制数据(class文件)

      硬盘上的class文件加载到JVM内存中

    二、连接

      1.验证

        .class文件正确性校验

      2.准备

        static静态变量分配内存,并附初始化默认值

        static int num = 10;在准备阶段,会把num = 0;之后修改为10;

        在准备阶段,只有类没有对象

        初始化顺序:static->非static->构造方法

        public class student{

        static int age;//准备阶段,age = 0;

        String name;

        }

      3.解析:把类中的符号引用转为直接引用。

        前期阶段,还不知道类的具体内存地址,只能使用“com.ruangong.pojo.student”来替代student类,“com.ruangong.pojo.student”就称为符号引用。

        在解析阶段,JVM就可以将“com.ruangong.pojo.student”映射成实际的内存地址,然后就用内存地址来代替student,这种使用内存地址来使用类方法称为直接引用。

    三、初始化阶段:给static变量赋予正确的值

        static int num = 10;

    四、使用:对象的使用、对象的垃圾回收、对象的销毁

    五、卸载

      

    JVM结束生命周期的时机:

      1.正常结束

      2.异常结束/发生错误

      3.system.exit() 手工结束

      4.操作系统异常

  • 相关阅读:
    [luogu p2482] [SDOI2010]猪国杀
    [luogu p2296] 寻找道路
    左右布局(备用复制)
    导出Excel
    流式布局 及 媒体查询
    echarts设置(持续更新)
    解决Vue中watch首次进入路由不触发的问题
    Math.random
    Vue的拖拽
    使的dialog上下左右居中(弹框居中)
  • 原文地址:https://www.cnblogs.com/jccjcc/p/14128831.html
Copyright © 2020-2023  润新知