• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

java类的生命周期

武飞扬头像
PHP中文网
帮助11

学新通技术网

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

详细介绍:

1、类的加载

查找并加载类的二进制数据(指class文件),通俗的将就是硬盘上的class文件加载到jvm内存中

2、连接: 确定类与类之间的关系;比如person.setAddress(address) 人对象中嵌套一个地址对象

  • 验证:正确性校验

  • 准备:static静态变量分配内存,并赋初始化默认值。
    比如static int num=10;
    在准备阶段,会吧num=0,之后再将0修改为10。准备阶段只会把num赋值为0,。jvm只有类,没有对象。
    初始化顺序:static->非static->构造方法
    public class Student{ static int age;//准备阶段,将age=0
    String name;
    }
    加载完类,程序只有学生类,没有学生对象,还没有 Student s=new Student()这句话

  • 解析:把类中符号引用,转为直接引用
    前期阶段,还不知道类的具体内存地址,只能使用com.pojo.Student来代替student类。
    com.pojo.Student就成为符号引用;
    在解析阶段,jvm就可以将com.pojo.Student映射程实际的内存地址,之后就用内存地址来代替 Student,这种使用内存地址来使用类的方式就成为直接引用

3、初始化:

比如static int num=10;

在准备阶段,会吧num=0,之后(初始化阶段之后)再将0修改为10。

4、使用: 对象的初始化,对象的垃圾回收,对象的销毁

5、卸载:

jvm结束生命周期的时机:

  • 正常结束

  • 异常结束、错误

  • System.exit()

  • 操作系统异常

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tangbkffc
系列文章
更多 icon
同类精品
更多 icon
继续加载