为了账号安全,请及时绑定邮箱和手机立即绑定

JVM

标签:
Java

JVM(Java Virtual Machine)java虚拟机。它是一套可以运行java代码的,运行在OS上的虚拟计算机,JVM隔离了底层操作系统,使得java可以不关心具体的底层操作系统,只需要编译成字节码运行在JVM上。JVM再把字节码转换为各个操作系统认识的机器码。进而将java变成了所谓的跨平台语言。

JVM包括了一套字节码指令集、一组寄存器、堆、栈、垃圾回收、一个存储方法域。

总结:java代码编译为.class字节码文件(javac),通过classLoader装在class,执行class,解释执行,编译执行(client compile,server compile)。

1 Java 源文件—->编译器—->字节码文件 2 字节码文件—->JVM—->机器码


JVM允许一个应用并发执行多个线程,hotspot JVM中java线程与原生操作系统线程有直接的映射关系。当线程本地存储、堆栈、缓冲区分配、同步对象、程序计数器等准备好了之后,就会创建一个操作系统原生的线程,操作系统负责调度所有的线程,并将它们分配到可用的CPU上。当原生线程初始化完毕,就会调用java线程的run()方法。当线程结束时,会释放java线程和系统线程等所有资源。

JVM后台主要的线程:

1:虚拟机线程  VM thread:这个线程等待JVM到达安全点操作出现。

2:周期性任务线程 用来调度周期性执行的操作

3:GC线程 这些线程支持JVM中不同的垃圾回收活动

4:编译器线程 讲字节码动态的转化为本地OS能相关的机器码

5:信号分发线程 负责接收发送给JVM的相关线程,并采用适当的方法进行处理

2019.2.26 15:06

JVM内存:





点击查看更多内容
2人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
11
获赞与收藏
50

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消