深入理解java虚拟机-JVM高级特性和最佳实现(一)

2018-02-03 10:33:30来源:https://www.jianshu.com/p/8db7cef19868作者:梦回起点人点击

分享





Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers "write once, run anywhere",meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. As of 2016, Java is one of the most popular programming languages in use,particularly for client-server web applications, with a reported 9 million developers.Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle Corporation) and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++, but it has fewer low-level facilities than either of them.

Java是一种通用的计算机编程语言,它是并发的、基于类的、面向对象的,并且专门设计为具有尽可能少的实现依赖关系。它旨在让应用程序开发人员“编写一次,随处运行”,这意味着编译后的Java代码可以在支持Java的所有平台上运行,而无需重新编译。Java应用程序通常编译成字节码,无论计算机体系结构如何,都可以在任何Java虚拟机( JVM )上运行。截至2016年,Java是目前最流行的编程语言之一,尤其适用于客户端-服务器web应用程序,据报道有900万开发人员。Java最初是由Sun微系统公司的James Gosling开发的(后来被Oracle公司收购),1995年作为Sun微系统Java平台的核心组件发布。该语言的大部分语法来自C和c++,但它的低级工具比这两者都少。

这是维基百科对java的定义。周志明《java虚拟机 Jvm高级特性和最佳实现》走近java章节概述java特点是:结构严谨、面向对象。write once, run anywhere,一次编写,到处运行,摆脱硬件平台的束缚。提供一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题;实现了热点代码检测和运行时编译及优化;完善的应用程序接口,无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能。

历史发展:As of 2017, both Java 8 and 9 are officially supported. Major release versions of Java, along with their release dates:
JDK 1.0 (January 23, 1996)
JDK 1.1 (February 19, 1997)
J2SE 1.2 (December 8, 1998)
J2SE 1.3 (May 8, 2000)
J2SE 1.4 (February 6, 2002)
J2SE 5.0 (September 30, 2004)
Java SE 6 (December 11, 2006)
Java SE 7 (July 28, 2011)
Java SE 8 (March 18, 2014)
Java SE 9 (September 21, 2017)
1995-5-23 Oak改名Java.
1996-1-23 JDK1.0
1997-2-19 JDK1.1 JDBC,JAR,JavaBeans RMI
1998-12-4 JDK1.2 J2SE J2EE J2ME EJB SWING
2000-5-8 JDK1.3 美洲红隼 
2002-2-13 JDK1.4 灰背隼
2004-9-30 JDK5.0 老虎 改进了java内存模型 java memory model 提供了java.util.concurrent并发包
2006-12-11 JDK6.0 野马
2009-2-19 JDK7.0 海豚 拟定Lambda项目(实际上jdk8才发布),Jigsaw项目,动态语言,GarbageFirst收集器,Coin项目。同年SUN公司被Oracle公司收购
2014-3-18 JDK8.0 蜘蛛

java虚拟机的发展史。
Sun Classic/Exact VM 第一款商用java虚拟机
Sun HotSpot VM Sun JDK 和OpenJDK所带的虚拟机,以下是我本地的JDK。2006年JavaOne大会上Sun公司宣布java开源,随后一年,JDK各个部分(包括HotSpot VM)在GPL协议下公开了源码,并在这基础上建立了OpenJDK




本地JDK

Sun Mobile-Embedded VM/Meta-Circular VM 面对移动和嵌入式市场,仅仅用于研究、验证某种技术和观点。
BEA JRockit/IBM J9 VM BEA和IBM公司研发的虚拟机。
Azul VM / BEA Liquid VM 真正的高性能虚拟机。
Apache Harmony / Goole Android Dalvik VM 这两款只能称为虚拟机,不能称为java虚拟机。对近几年的java世界产生了非常大的影响和挑战,可能崩溃java生态系统。
Microoft JVM和其他 微软支持Java Applets应用而开发了自己的java虚拟机,虽然只在windows平台,却是当时在windows下性能最好的java虚拟机,然而最终输了官司,windows 逐渐移出java虚拟机相关功能。

展望java技术的未来
模块化
混合语音
多核并行
进一步丰富语法
64位虚拟机





微信扫一扫

第七城市微信公众平台