您的位置:首页 > 编程语言 > Java开发

Java虚拟机详解01----初识JVM

2017-02-21 20:46 246 查看
主要内容如下:
JVM的概念
JVM发展历史
JVM种类
Java语言规范
JVM规范

一、JVM的概念:

JVM:

  Java Virtual Machine,意为Java虚拟机。

虚拟机:

  指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统

有哪些虚拟机:

VMWare、Virtual Box:都是使用软件模拟物理CPU的指令集
JVM:使用软件模拟Java 字节码的指令集

 

二、JVM发展历史:

1、Java发展史:
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性能

    注:JDK1.2开始,称为Java 2,于是有了J2SE J2EE J2ME 的出现,同时加入Swing Collections。
2000年:JDK 1.3,Hotspot 作为默认虚拟机发布

    加入JavaSound
2002年:JDK 1.4【Java真正走向成熟的一个版本】,Classic VM退出历史舞台

    加入:Assert  正则表达式  NIO  IPV6  日志API  加密类库
2004年:JDK 1.5【至关重要的版本】。即 JDK5 、J2SE 5 、Java 5

泛型
注解
枚举
自动装箱
可变长参数
Foreach循环

2006年:JDK 1.6发布,JDK6

脚本语言支持
JDBC 4.0
Java编译器 API

2011年:JDK7发布

延误项目推出到JDK8
G1(全新的GC收集器)
动态语言增强
64位系统中的压缩指针
NIO 2.0

2014年:JDK8发布【重要的版本】

Lambda表达式
语法增强  Java类型注解

2016年:计划发布JDK9

    模块化

 

2、重大历史事件:
使用最为广泛的JVM为HotSpot

    HotSpot 为Longview Technologies开发,被SUN收购
2006年:Java开源,并建立OpenJDK

    HotSpot  成为Sun JDK和OpenJDK中所带的虚拟机
2008年:Oracle收购BEA

    得到JRockit VM
2009年4月20日:Oracle公司正式宣布以74亿美金的价格收购Sun公司。  

得到Hotspot
Oracle宣布在JDK8时整合JRockit和Hotspot,将这两款优秀的虚拟机取长补短,最终合二为一。

    在Hotspot基础上,移植JRockit优秀特性

 

三、JVM种类:

1、KVM:

SUN发布
IOS Android兴起之前,广泛用于手机系统

2、CDC/CLDC HotSpot:

手机、电子书、PDA等设备上建立统一的Java编程接口
J2ME的重要组成部分

3、JRockit:

  BEA 

4、IBM J9 VM:

  IBM内部

5、Apache Harmony:

兼容于JDK 1.5和JDK 1.6的Java程序运行平台
与Oracle关系恶劣,退出JCP ,Java社区的分裂
OpenJDK出现后,受到挑战,2011年退役
没有大规模商用经历
对Android的发展有积极作用

 

四、Java语言规范:

Java语言规范主要体现在以下几点:
语法
变量
类型
文法

 

五、JVM规范:

JVM主要定义二进制class文件和JVM指令集等。

JVM语言规范主要体现在以下几点:
Class文件类型
运行时数据
帧栈
虚拟机的启动
虚拟机的指令集

此外,JVM需要对Java Library 提供以下支持:(因为这些东西没有办法通过java语言本身来实现)
反射 java.lang.reflect
ClassLoader
初始化class和interface
安全相关 java.security
多线程
弱引用
from: https://yq.aliyun.com/articles/37179?spm=5176.100239.blogcont37195.26.DtxXZF
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java 虚拟机 详解 JVM