For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
想要晋级成java高手的时候,修炼方法与零基础是不同的,那么今天就和大家分享java高手修炼之JVM,昆明达内小编准备把JVM知识梳理一遍,先以开发人员的交流来谈谈jvm这块的知识以及重要性,依稀记得2、3年前用solr的时候老是经常oom,提到oom大家应该都不陌生,那个时候也并没有从根本解决oom,由于对jvm不熟悉,只是去百度,到处都是配置jvm参数的,那个时候啥不懂,直接粘贴,但是并没有解决问题,通过这个就告诉我们作为开发人员也需要对jvm很熟悉才行。
Java学习中JVM常遇问题:
那么问题来了,很多人会说我的代码并没有出现oom啊,不需要关注啊,因为不理解不知道重要性,可以回头看看的我的JVM菜鸟进阶高手之路一到九篇系列,可能很多人说还没有到那么高级,不需要理解,我也告诉你也是不对的,且听我慢慢道来。
不得不谈的JAVA虚拟机规范:
谈到jvm首先需要谈的是,JAVA虚拟机规范,这个就类似jdbc规范一样,定义了一些规范,oracle有oracle的实现,mysql有mysql的实现,JAVA虚拟机规范也一样,java虚拟机有很多,IBM、Apache Harmony等,每个都有些细节不一样,但是大体符合JAVA虚拟机规范的,由于Oracle收购SUN之后,Oralce主要有JRockit和Hotspot虚拟机了,后来将其进行整合了,不然维护两套麻烦,就和原来的struts1和struts2一样,Oralce主要是以Hotspot来的,把JRockit里面的一些优点也慢慢加入到其中。
JAVA虚拟机的优势所在:
目前市面上Hotspot占用率是很高的,一般说到JAVA虚拟机基本都是Hotspot虚拟机。JAVA8虚拟机规范是按照道理应该去阅读阅读的,虽然java语言与java虚拟机有密切的关系,但是两者是完全不同的内容,像Scala、Clojure、Groovy等语言都是跑在JAVA虚拟机上面的,可以产生各种各样的跨平台语言,除了语言特性不一样,他们可以共享JAVA虚拟机带来的跨平台性、垃圾回收器、以及即使编译(看到这里都应该明白这些的JAVA虚拟机拥有的不是java语言规范定义的,稍微解释下为什么用JAVA虚拟机就可以做到跨平台呢?依稀记得当时刚刚学习java的时候有句口号“一次编译,到处运行。”
Java程序理想上,并不理会真正执行哪个平台,只要知道如何执行于JVM就可以了,至于JVM实际上如何与底层平台沟通,那是JVM自己的事。由于JVM实际上相当于Java程序的操作系统,JVM就负责了Java程序的各种资源管理。
我们要记住两点:
JVM就是Java程序的操作系统,JVM的可执行文件就是.class文件。
Java虚拟机屏蔽了操作系统之间的差异,但是不同的系统使用的虚拟机不同。
免责声明:本文由昆明达内小编转载自网络,旨在分享提供阅读,版权归原作者所有,如有侵权请联系我们进行删除。
扫码加入0元7天试听课程报名!