JVM与JMM

JVM Java Virtual Machine(Java虚拟机)

​ JVM是 Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

​ 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

一、JVM的体系架构

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

二、类加载器

类加载器:类加载器是jre的一部分,负责动态将类添加到Java虚拟机。(加载Class文件 )

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

(1)Stu类 通过类加载器加载 .class文件初始化

(2)初始化StuClass模板

(3)通过StudClass类模板实例化 多个对象Stu1、Stu2、Stu3

(4)多个对象Stu1、Stu2、Stu3 依次压入栈(先进后出)

(5)通过堆中的方法区获取对应的属性或常量

​ 1、 虚拟机自带的加载器

​ (1)启动类加载器(根加载器) bootstrap classloader

​ 加载jre/lib/rt.jar

​ (2)扩展类加载器 extension classloader

​ 加载jre/lib/ext/*.jar

​ (3)应用程序类加载器 application classloader

​ 加载classpath上指定的类库

三、双亲委派机制(类加载器的机制)

​ 1.当Application ClassLoader 收到一个类加载请求时,他首先不会自己去尝试加载这个类,而是将这个请求委派给父类加载器Extension ClassLoader去完成。

2.当Extension ClassLoader收到一个类加载请求时,他首先也不会自己去尝试加载这个类,而是将请求委派给父类加载器Bootstrap ClassLoader去完成。

3.如果Bootstrap ClassLoader加载失败,就会让Extension ClassLoader尝试加载。

4.如果Extension ClassLoader也加载失败,就会使用Application ClassLoader加载。

​ 5.如果Application ClassLoader也加载失败,就会使用自定义加

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禾下凉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值