zoukankan      html  css  js  c++  java
  • 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.操作系统异常

  • 相关阅读:
    saltstack配置详解
    前端html&Css快速入门...
    pymysql实现注册登录
    Mysql学习入门到放弃ing...
    python学习之选课系统项目(面向对象)
    python 面向对象和类
    python开发三层架构
    python 查看某个文件下最新更新的日期文件
    python写小说阅读功能~
    删除链表中重复的结点
  • 原文地址:https://www.cnblogs.com/jccjcc/p/14128831.html
Copyright © 2011-2022 走看看