《深入理解Java虚拟机》学习笔记(1)——走近Java

世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。

1、Java的优点:

(1)“一次编写,到处运行”(Write Once, Run Anywhere)

(2)相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题

(3)实现了热点代码检测和运行时编译及优化

(4)大量来自商业机构和开源社区的第三方类库

2、Java技术体系

Sun官方所定义的Java技术体系包括:

(1)Java程序设计语言

(2)Java虚拟机

(3)Class文件格式

(4)Java API类库

(5)来自商业机构和开源社区的第三方Java类库

JDK(Java Development Kit)是用于Java程序开发的最小环境,包括Java语言、Java虚拟机和Java API类库。

JRE(Java Runtime Environment)是支持Java程序运行的标准环境,包括Java SE API子集和Java虚拟机。

3、Java发展史

1991年,Java语言的前身Oak

1995年,Oak改名为Java,Java1.0正式发布

1996年,JDK1.0发布,代表技术包括:Java虚拟机(Sun Classic VM)、Applet、AWT等

1997年,JDK1.1发布,代表技术包括:jar文件格式、JDBC、JavaBeans、RMI(远程方法调用,Remote Method Invocation)、内部类、反射等

1998年,JDK1.2发布,把Java技术体系拆分为J2SE、J2EE、J2ME,代表技术:EJB、Java Plug-in、Java IDL、Swing,并且Java虚拟机第一次内置了JIT(Just in time)编译器

1999年,HotSpot虚拟机发布

2000年,JDK1.3发布,主要改进:JNDI开始被作为一项平台级服务提供,使用CORBA IIOP来实现RMI通信协议,Java 2D API改进,新增JavaSound类库等

2002年,JDK1.4发布,新特性:正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器等

2002年,微软的.NET Framework发布

2004年,JDK1.5发布,新特性:自动装箱、泛型、动态注解、枚举、可变长参数、foreach循环、java.util.concurrent并发包等。另外,JDK1.5是可支持Windows 9x平台的最后一个JDK版本

2006年,JDK1.6发布,主要改进有:提供动态语言支持、提供编译API和微型HTTP服务器API等

2006年,Sun公司宣布会将Java开源,并建立了OpenJDK组织

2008年,Oracle收购BEA公司(WebLogic、JRockit)

2009年,Oracle收购Sun公司

2011年,JDK7发布,新特性:switch中使用字符串、泛型实例化类型自动推断、同时捕获多个异常、java.util.concurrent.forkjoin包等

2014年,JDK8发布,新特性:Lambda表达式、函数式接口、新的日期时间API、彻底移除HotSpot的永久代等

2017年,JDK9发布,新特性:模块化、轻量级JSON API、JShell等

2018年,JDK10发布,Java被Oracle“扫地出门”,所有权捐赠给Eclipse基金会;JDK11发布,OracleJDK11与OpenJDK11在代码和功能上是完全相同的

2019年,JDK12发布,OracleJDK12与OpenJDK12不兼容

4、Java虚拟机发展史

(1)Sun Classic/Exact VM

Sun Classic VM是世界上第一款商用Java虚拟机,只能使用纯解释器方式来执行Java代码,如果要使用JIT编译器,就必须进行外挂。

(2)Sun HotSpot VM

HotSpot是Sun JDK和OpenJDK中所带的虚拟机,也是使用范围最广的Java虚拟机。

(3)Sun Mobile-Embedded VM/Meta-Circlar VM

移动和嵌入式虚拟机

(4)BEA JRockit/IBM J9 VM

(5)Azul VM/BEA Liquid VM

(6)Apache Harmony/Google Android Dalvik VM

(7)Microsoft JVM及其他

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值