虚拟机java,虚拟机java -version未找到命令

作者:高方托管网 2024-08-13 21:59:06 0

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

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

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

虚拟机java,虚拟机java -version未找到命令

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

可以负责任的讲,目前没有过时,未来短期内也不会过时。《深入理解Java虚拟机》是否过时,首先取决于 Java 语言本身是否过时了。目前Java在绝大多数领域占有不可忽视的地位。在语言排行榜中,也是长期居于前列。java 本身的可移植性,使得很多服务器以及web后端开发都青睐有加,而其自身语言的特性,以及丰富的库,更让他在众多语言中经久不衰。而作为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虚拟机的内存结构图,觉得还是有必要来说下这个问题的。

先谈是不是过时的问题。

现在我们在国内可以读到的《深入理解Java虚拟机》应该是它的第2版吧,我没有去查过,有没有更新的版本,大致长这样

它所针对的,主要是JDK7的规范,那么,从JDK7到现在的JDK 12正式发布,应该说JDK已经在各方面,都发生了很大的变化。

考虑到目前在整个业界,甚至连JDK8的规范,其实还普及未久,那么,简单的就以JDK7和JDK8下,关于PermGen空间的事情,来做个例子。

在《深入理解Java虚拟机》的2.4.3中,谈到了运行时常量池的溢出,其中给出了一个说明,即:

但估计你照此去理解JDK8及其以后的虚拟机,恐怕要抓瞎,因为,从JDK8开始,已经没有PermGen空间了,取而代之的是Metaspace。

当然,这不是什么大的问题,但也说明实际上,这么多年,JDK也在与时俱进的发展着,所以:

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

相关推荐