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

深入理解java虚拟机-JVM高级特性和最佳实现(一)——初识_第1张图片
每篇一叶

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,一次编写,到处运行,摆脱硬件平台的束缚。提供一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题;实现了热点代码检测和运行时编译及优化;完善的应用程序接口,无数来自商业机构和开源社区的第三方类库来帮助它实现各种各样的功能。


深入理解java虚拟机-JVM高级特性和最佳实现(一)——初识_第2张图片
百度百科提供java技术体系


历史发展: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大事件

1995年5月23日,Oak语言改名Java,首次提出Write Once,Run Anywhere

1996年1月23日,JDK1.0发布,代表技术java虚拟机、Applet、AWT等

1996年4月,10个主要的操作系统供应商申明将在其产品中嵌入Java技术。在5月底,Sun公司在旧金山举行了首届JavaOne大会,这是每年一度的技术盛会。

1997年2月19日,发布JDK1.1,提供了一些最基础的支撑点。主要代表技术有JAR文件格式、JDBC、JavaBean、RMI。Java语法也有一定的扩展,如Inner Class和Reflection

到1999年4月8日,jdk1.1.0-jdk1.1.8九个小版本

1998年12月4日,JDK1.2发布。Java技术体系拆分为J2ME,J2SE,J2EE。代表技术有EJB、Java Plug-in、Java IDL、Swing等,并第一次内置了JIT编译器(出现过Classic VM、HotSpot VM、Exact VM三个虚拟机,Classic VM以外挂的形式使用JIT,其他两个内置JIT编译器)

1999年4月27日 HotSpot虚拟机发布,成为JDK1.3及之后所有版本SunJDK的默认虚拟机

2000你那5月8日,JDK1.3发布。改进1.2上的一些类库(如数学运算和新的Timer API等),JNDI服务从JDK1.3开始作为一项平台级服务提供,使用CORBA IIOP来实现RMI的通信协议等。对Java 2D做了改进,提供大量新的Java 2D API,并添加JavaSound类库。

2002年2月13日,JDK1.4发布。一个Java真正成熟的版本。技术表现:正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等

2004年9月30日,JDK1.5发布。语法易用性做了非常大的改进。如自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环(foreach循环)等。改进了内存模型Java Memory Model、提供Java.util.concurrent并发包等。

2006年12月11日,JDK1.6发布。改进包括:提供动态语言支持(通过内置Mozilla JavaScript Rhino 引擎实现)、提供编译API和微型HTTP服务器API等。对虚拟机内部进行大量的改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改动。

2006年11月13日的JavaOne大会上Sun公司宣布最终会将Java开源

2009年2月19日 JDK1.7发布,JDK1.7的功能规划有Lambda项目、Jigsaw项目、动态语言支持、GarbageFirst收集器和Coin项目,然而最后并没有都实现。最终JDK1.7主要改进:提供G1收集器,加强对非Java语言的调用支持、升级类加载架构等。

2009年4月20日,Sun公司被收购,Java商标最终归Oracle公司所有。

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位虚拟机

你可能感兴趣的:(深入理解java虚拟机-JVM高级特性和最佳实现(一)——初识)