您的位置:首页 > 编程语言 > Java开发

JVM学习(一)——JAVA与JVM

2017-11-25 13:05 344 查看

JVM学习(一)——JAVA与JVM

关于JVM的学习,一直拖拖拉拉,拖了好久,连一些基本的理念都不清楚,身为一个JAVA开发这真的很不应该。从今天开始起,会坚持更新JVM相关的笔记、博客,以《深入理解Java虚拟机》学习,向作者致敬。

JAVA

总所周知,Java是当下非常火爆的一门语言,JAVA开发的程序员在我国可谓是一抓一大片,诚然门槛儿比较低,但是java能够获得如此广泛的认可,它有着许多不可忽视的优点。

它摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想

它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题

它实现了热点代码检测和运行时编译优化,这使得java应用能随着运行时间的增加而获得更高的性能

它,拥有无数优秀的开源项目,大名鼎鼎的spring

java在今天之所以会被如此广泛的应用,个人认为有以下几个主要原因

门槛低,算是面向对象编程语言中较为简单的

稳固的生态体系,优秀的框架,出色的设计,spring为代表等节约了企业大量的开发成本

得益于JVM的默默付出

于是今天,我们就来谈谈JVM,java的核心,java的生命。

走进JVM

从广义上来看,clojure、jruby、groovy、Scala都属于JVM上的语言,可以说是java技术体系中的一员。我们可以把java程序设计语言、jvm、java api类库这三部分统称为JDK(Java Development Kit)。另外,也可以把Java API类库中的Java SE API 子集和jvm这两部分统称为JRE (Java Runtime Environment)

JVM的发展

1.Sun Classic/Exact VM

​ Sun Classic:世界第一款商用Java虚拟机

​ Exact VM:准确式GC:虚拟机可以知道内存中的某个位置的数据具体是什么类型。

2.Sun Hotspot VM

​ 1. 目前使用最广泛的JVM

​ 2.热点代码探测技术:通过执行计数器找出最具编译价值的代码。

也是OpenJDK 和SunJDK 所带的虚拟机

3.移动端虚拟机

KVM,CDC/CLDC Hotspot Implenmentation,Squawk VM,JavaInJava,Maxine VM

4.BEA JRockit/IBM J9VM

JRockit:号称世界上最快的Java 虚拟机。它不太关注程序启动速度,内部不包含解析器的实现。其垃圾收集器和missionControl服务套件等部分,在jvm之中处于领先的水准

5.Azul VM/BEA LiquidVM

6.Apache Harmony/Google Android Dalvik VM

dvm是Android中的虚拟机,我也曾写博客做对比过,但是貌似最近随着谷歌换了官方支持语言,一切会有些许改变

目前最流行的Java 虚拟机:

1.HotSpot VM (融合了Jrockit)

2.J9 VM

3.Zing VM

有兴趣的朋友可以去每个了解一下,篇幅太多,这里也不再赘述
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jvm java 虚拟机