JAVA虚拟机特点,java虚拟机的特点

作者:高方托管网 2024-09-06 17:50:10 0

大家好,今天小编关注到一个比较有意思的话题,就是关于JAVA虚拟机特点的问题,于是小编就整理了2个相关介绍JAVA虚拟机特点的解答,让我们一起看看吧。

什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?

就是把JAVA字节码解释为机器语言的解释器,JAVA虽然编译成了字节码,但机器不能识别,还要进一步解释为机器码才能执行。这个算不上虚拟机,就是个解释器。和VB PHP这类解释器没有分别。不同平台使用不同解释器就能跨平台了。

JAVA虚拟机特点,java虚拟机的特点

JAVA虚拟机,俗称JVM(JAVA Virtual Machine)!是运行JAVA代码的抽象计算机!

我们知道JAVA最重要的特性就是跨平台,借此能让JAVA运行在智能手表,手机,游戏机,电脑等大部分的平台上,其原因就是因为JAVA源码运行在JVM中,JVM提供了跨平台实现!

为什么JAVA能跨平台?不同的操作系统会有不同的指令集,将高级编程语言转化为汇编语言,进一步的解释为只有0和1机器码由操作系统执行,而JAVA官方根据不同的操作系统定制了一套不同的JVM,能把相同的源码根据不同的指令集解释为不同的机器码以执行!真正实现了与平台无关,让JAVA开发者脱离底层的语言开发,而专注于业务应用开发!

JVM模拟了一套硬件计算机环境,有一套自己的字节码指令集,堆,栈,方法区,包括寄存器等!

在JAVA类加载和运行的时候,会把对象引用,实例对象,静态变量,方法,类等放入不同的区域,提供运行计算式快速的存取数据!

区别于大部分其他的语言,JAVA封装了对于内存的管理,通过提供的垃圾算法(标记清除,标记整理,复制算法等)对内存自动进行回收!

关于JVM的垃圾收集器,内部回收算法,JVM如何运行等,市面上有大量的书籍,因为JVM与运行效率,吞吐量,高并发等息息相关,所以通常为JAVA技术面试的必问知识点,值得大家用功掌握,更多的技术分享,敬请关注。。

《深入理解Java虚拟机》过时了吗?

目前的情况远远没到过时的程度!

如果是从事Java开发,我觉得早点深入理解Java虚拟机一定是正确的选择,这种核心基础的功力如果修炼的好,一定会对工作甚至职业有很大的帮助!!

其实这个问题需要客观地看待,我认为只要java虚拟机不过时,《深入理解java虚拟机》这本书就不会过时。跑在JVM上的编程语言不止java一种,JPython,JRuby,Groovy等语言都跑在java虚拟机上,存在即合理,只要这些编程语言有人用,java虚拟机就不会过时。很多C和C++的程序员吐槽java虚拟机的GC机制导致跑在JVM上的编程语言写出来的程序性能差,执行慢的缺点。这点我不予否定,GC在垃圾回收时的确会有较长的停顿时间,但是事物总是具有两面性的,需要客观看待,C追求性能,那么就得牺牲可移植性。而java正是在极致性能和跨平台性两者的权衡下选择了后者,而恰恰java虚拟机正是java跨平台的核心所在,况且,JVM也是随着技术的发展不断演进的,从CMS,G1再到java11目前还在试验阶段的ZGC,java虚拟机的GC停顿时间也在变得越来越短,官方给出的ZGC的停顿时间不超过10ms,我们在做性能测试的时候ZGC的停顿时间远远到不了10ms,大多数情况下都在一两毫秒之内,况且10ms的停顿对大多数的程序的性能影响都是微乎其微的,相比于以前四五百毫秒的停顿时间,即使是10ms的停顿也算是几何级的突破了,相信未来的JVM性能还会不断地提升的,所以,在未来的很长一段内,java虚拟机不但不会过时的,反而会更加流行。再说《深入理解java虚拟机》这本书,自出版以来,一直被业界奉为经典之作,也是程序员了解JVM必看的著作,虽然这本书是基于JavaSE7的规范,但是这并不妨碍我们学习JVM.一般底层的核心内容变化的幅度不是很大的。虽然这本书讲到的CMS垃圾收集器目前已放弃维护,官方重点维护G1和ZGC,但是关于原理和思想的东西是永远都不会变的,之所以长期起来被奉为经典,就是因为有其借鉴的价值。所以《深入理解java虚拟机》在未来很长一段时间是不会过时的。

到此,以上就是小编对于JAVA虚拟机特点的问题就介绍到这了,希望介绍关于JAVA虚拟机特点的2点解答对大家有用。

相关推荐