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

 

主要内容以下:java

  • JVM的概念
  • JVM发展历史
  • JVM种类
  • Java语言规范
  • JVM规范

1、JVM的概念:正则表达式

JVM:编程

  Java Virtual Machine,意为Java虚拟机。安全

虚拟机:多线程

  指经过软件模拟的具备完整硬件系统功能的、运行在一个彻底隔离环境中的完整计算机系统模块化

有哪些虚拟机:性能

VMWare、Virtual Box:都是使用软件模拟物理CPU的指令集加密

JVM:使用软件模拟Java 字节码的指令集spa

 

2、JVM发展历史:线程

一、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

    模块化

 

二、重大历史事件:

  • 使用最为普遍的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优秀特性

 

3、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的发展有积极做用

 

4、Java语言规范:

Java语言规范主要体如今如下几点:

  • 语法
  • 变量
  • 类型
  • 文法

 

5、JVM规范:

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

JVM语言规范主要体如今如下几点:

  • Class文件类型
  • 运行时数据
  • 帧栈
  • 虚拟机的启动
  • 虚拟机的指令集

此外,JVM须要对Java Library 提供如下支持:(由于这些东西没有办法经过java语言自己来实现)

  • 反射 java.lang.reflect
  • ClassLoader
  • 初始化class和interface
  • 安全相关 java.security
  • 多线程
  • 弱引用
相关文章
相关标签/搜索