02.类加载器和JVM

目录

类加载器的功能

分解JVM


 

类加载器的功能

 

上一节我们讲过了.java格式的文件会转换成.class格式。而.class格式需要通过类加载器才能进入到JVM中。下面以HelloWorld为例,讲解下类加载器的功能和作用。

类加载器有七大功能:

<1>加载

加载很好理解,就是把代码加载到“类加载器”中。

 

<2>验证

验证有两个作用。一是验证class文件的版本能不能兼容到当前JVM的版本中;二是验证class文件是否满足jvm规范(class的第一个字节码是否为16进制)

 

<3>准备

指的是把类成员初始化为初始值。例如public static int a = 100;准备工作是先新建一个变量a,设置它的初始值为0。【final的类变量除外,final变量会直接初始化为变量值】

 

<4>解析

将符号引用解析为直接引用。例如上面的public static int a = 100;解析这一步把a转换为内存地址,进制的形式。

 

<5>初始化

把我们定义的static变量或者static静态代码按顺序组织成类构造器形式来初始化变量。对于public static int a = 100;初始化把100赋给a。

.

<6>使用

在堆内存中创建对象执行。其顺序分为两部分,一是加载实例信息进入开辟的内存中(执行普通代码块);二是执行构造方法<init>方法

 

<7>卸载

程序执行完毕,需要移除程序时

 

 

分解JVM

 

  • class文件进入JVM后保存在方法区中

  • 堆内存可供多线程共享使用

  • 每个线程都有自己的栈区域

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值