类加载器

简介:
 1)在java代码中,【类型】的加载、连接与初始化过程都是在程序【运行期间】完成的
    类型:如我们定义的类、接口、枚举,并不涉及到对象的概念;
    加载:将已经编译好的class字节码文件从磁盘中加载到内存里面;
    连接:将类与类之间的关系确定好,对于字节码的处理在加载连接阶段完成;类与类之间的调用关系也是在这个阶段完成的
    初始化:对于类型中的一些静态变量进行赋值是在初始化过程完成的
  2)提供了更大的灵活性,增加了更多的可能性
1、类加载器
  可以理解为加载类的一个工具
2、java类的生命周期
java类生命周期包括5个部分,分别是类的加载、连接、初始化、使用和卸载
1)加载:
  查找并加载类的二进制数据,将class字节码文件从磁盘加载到内存里面
2)连接:
  -验证:确保被加载类的正确性
  -准备:为类的【静态变量】分配内存,并将其初始化为【默认值】,这个阶段对象还没有创建

class Test{
  //在准备阶段jvm会给静态变量a分配内存,并给int类型的变量a赋予一个默认值0;
public static int a = 1;
}

-解析:把类中的符号引用转换为直接引用
    符号引用:间接的引用方式,如类中的一个方法引用了另一个类
    直接引用:直接将方法通过指针的方式指向目标对象在内存中的位置
3)初始化:
  为类的静态变量赋予正确的初始值

class Test{
  //初始化阶段才会将1赋值给变量a
public static int a = 1;
}

4)使用:
  程序正常使用这个类,如创建对象,调用方法,这是和程序员打交道最多的地方
5)卸载:
  class字节码文件在加载到内存里面之后,形成自己的数据结构,并驻留在内存中,最终从内存中销毁就叫做类的卸载。

jvm结束生命周期的情况:
  执行System.exit()方法
  程序正常执行结束
  程序在执行过程中遇到了异常或错误而异常终止
  由于操作系统出现错误而导致java虚拟机进程终止

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值