虚拟机:
指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统
有哪些虚拟机:
VMWare
Visual Box
JVM:使用软件模拟Java字节码的指令集
JDK的发展历程:
•1996年 SUN JDK 1.0 Classic VM
–纯解释运行,使用外挂进行JIT
•1997年 JDK1.1 发布
–AWT、内部类、JDBC、RMI、反射
•1998年 JDK1.2 Solaris Exact VM
–JIT 解释器混合
–Accurate Memory Management 精确内存管理,数据类型敏感
–提升的GC性能
•2000年 JDK 1.3 Hotspot 作为默认虚拟机发布
•2002年 JDK 1.4 Classic VM退出历史舞台
•2004年发布 JDK1.5 即 JDK5 、J2SE 5 、Java 5
–泛型
–注解
–装箱
–枚举
–可变长的参数
–Foreach循环
•JDK1.6 JDK6
–脚本语言支持
–JDBC 4.0
–Java编译器 API
•2011年 JDK7发布
–延误项目推出到JDK8
–G1(垃圾回收器)
–动态语言增强
–64位系统中的压缩指针
–NIO 2.0
•2014年 JDK8发布
–Lambda表达式
–语法增强 Java类型注解
•2016年JDK9
–模块化
Java历史中的大事件
•使用最为广泛的JVM为HotSpot
•HotSpot 为Longview Technologies开发 被SUN收购
•2006年 Java开源 并建立OpenJDK
–HotSpot 成为Sun JDK和OpenJDK中所带的虚拟机
•2008 年 Oracle收购BEA
–得到JRockit VM
•2010年Oracle 收购 Sun
–得到Hotspot
•Oracle宣布在JDK8时整合JRockit和Hotspot,优势互补
–在Hotspot基础上,移植JRockit优秀特性
JVM的种类
•KVM
–SUN发布
–IOS Android前,广泛用于手机系统
•CDC/CLDC HotSpot
–手机、电子书、PDA等设备上建立统一的Java编程接口
–J2ME的重要组成部分
•JRockit
–BEA
•IBM J9 VM
–IBM内部
•Apache Harmony
–兼容于JDK 1.5和JDK 1.6的Java程序运行平台
–与Oracle关系恶劣 退出JCP ,Java社区的分裂
–OpenJDK出现后,受到挑战 2011年 退役
–没有大规模商用经历
–对Android的发展有积极作用
Java语言规范定义了什么是Java语言
•Java语言和JVM相对独立
–Groovy
–Jython
–JRuby
–Clojure
–Scala
•JVM主要定义二进制class文件和JVM指令集等