深入浅出JVM - 51CTO.COM

Download Report

Transcript 深入浅出JVM - 51CTO.COM

深入浅出JVM——入门
第1讲 JVM概述
讲师:葛一鸣
微博:http://weibo.com/u/5236909237
QQ群:397196583
深入浅出JVM(入门)-JVM概述
• 学习目标
– 理解什么是JVM
– 了解Java的发展历史
– 了解JVM的种类
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• JVM是Java Virtual Machine的简称。意为Java虚拟机
• 虚拟机
– 指通过软件模拟的具有完整硬件系统功能的、
– 运行在一个完全隔离环境中的完整计算机系统
• 有哪些虚拟机
– VMWare
– Visual Box
– JVM
• VMWare或者Visual Box都是使用软件模拟物理CPU的指令集
• JVM使用软件模拟Java 字节码的指令集
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• 1996年 SUN JDK 1.0 Classic VM
– 纯解释运行,使用外挂进行JIT
• 1997年 JDK1.1 发布
– AWT、内部类、JDBC、RMI、反射
• 1998年 JDK1.2 Solaris Exact VM
JDK1.2开始 称为Java 2
J2SE J2EE J2ME 的出现
加入Swing Collections
– JIT 解释器混合
– Accurate Memory Management 精确内存管理,数据类型敏感
– 提升的GC性能
• 2000年 JDK 1.3 Hotspot 作为默认虚拟机发布
• 2002年 JDK 1.4 Classic VM退出历史舞台
加入JavaSound
Assert 正则表达式 NIO IPV6 日志API 加密类库
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• 2004年发布 JDK1.5 即 JDK5 、J2SE 5 、Java 5
–
–
–
–
–
–
泛型
注解
装箱
枚举
可变长的参数
Foreach循环
• JDK1.6 JDK6
– 脚本语言支持
– JDBC 4.0
– Java编译器 API
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• 2011年 JDK7发布
–
–
–
–
–
延误项目推出到JDK8
G1
动态语言增强
64位系统中的压缩指针
NIO 2.0
• 2014年 JDK8发布
– Lambda表达式
– 语法增强 Java类型注解
• 2016年JDK9
– 模块化
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• 使用最为广泛的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优秀特性
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• JVM的种类
• KVM
– SUN发布
– IOS Android前,广泛用于手机系统
• CDC/CLDC HotSpot
– 手机、电子书、PDA等设备上建立统一的Java编程接
口
– J2ME的重要组成部分
• JRockit
– BEA
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
• IBM J9 VM
– IBM内部
• Apache Harmony
–
–
–
–
–
兼容于JDK 1.5和JDK 1.6的Java程序运行平台
与Oracle关系恶劣 退出JCP ,Java社区的分裂
OpenJDK出现后,受到挑战 2011年 退役
没有大规模商用经历
对Android的发展有积极作用
葛一鸣 QQ群:397196583
深入浅出JVM(入门)-JVM概述
葛一鸣 QQ群:397196583