zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

JAVAJVM虚拟机 详解 ---- 01 初识
2023-09-14 08:57:57 时间

虚拟机:

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

有哪些虚拟机:

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

 


JVM 虚拟机4种垃圾收集算法 垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接垃圾收集”。
生命壹号 个人网站:smyhvae.com。博客园:cnblogs.com/smyhvae。微信公众号:生命团队 | vitateam