类和对象的生命周期

类的初始化和实例化

首先需要确认的一点为类首先需要进行初始化进行实例化。这是两个步骤。

1.1类的生命周期

指一个class文件从加载到卸载的全过程,这个过程包含7个部分

加载→验证→准备→解析→初始化→使用→卸载

在这里插入图片描述

其中,验证——准备——解析 称为连接阶段,除了解析外,其他阶段是顺序发生的,而解析可以与这些阶段交叉进行,因为Java支持动态绑定(晚期绑定),需要运行时才能确定具体类型;在使用阶段实例化对象。对象的生命周期只是类的生命周期中使用阶段的主动引用的一种情况(即实例化类对象)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d6r2iidd-1656496393713)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20220629145519288.png)]

2.1加载

java中我们常提起一个词语叫类加载,类加载和这里的加载并不是一回事。类加载指的是加载,连接,初始化三个阶段。回到加载。加载阶段,java虚拟机会做什么工作呢?

加载目的:找到需要加载的类并把类信息加载到方法区中。会在堆区实例化一个java.lang.Class对象,作为方法区中这个类的信息的入口。

类加载方式比较灵活,常用的有两种

  • 根据类的全路径名找到相应的class文件,然后从class文件中读取文件内容
  • 另一种是从jar文件中读取
  • 从网络中获取:比如10年前十分流行的Applet。
  • 根据一定的规则实时生成,比如设计模式中的动态代理模式

对于加载的时机取决于所用jvm。但是一定会在类将要被使用前进行加载。常用的hotspot是用到时才加载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值