Java虚拟机JVM初识

Java发展重大事件

2000年,JDK1.3发布,Java 的HotSpot虚拟机发布,正式成为Java默认的虚拟机。
2011年,JDK7发布,正式启用了新的垃圾回收器G1。
2017年。JDK9发布。G1设置为默认GC,代替GMS。

系统虚拟机:
Visual Box,Vmware。对物理计算机的仿真
程序虚拟机
Java虚拟机,专门为执行单个计算机程序而设计

Java虚拟机
二进制字节码的运行环境,装在字节码到其内部,解释/编译为对应平台上的机器指令执行。
特点:
一次编译,到处运行
自动内存管理
自动垃圾回收功能

Java虚拟机运行环境

JVM运行在操作系统之上,与硬件没有直接的交互
在这里插入图片描述

HotSpot虚拟机

Java虚拟机采用的HotSpot虚拟机,采用解释器和即时编译器并存的架构。
在这里插入图片描述

架构模型

JVM采用基于栈的指令集架构,跨平台,指令集小,指令多,执行性能比寄存器差

基于栈式架构特点:

  1. 设计和实现更简单。适用于资源受限的系统
  2. 避开了寄存器的分配难题,使用零地址指令方式分配
  3. 指令流中的指令大部分是零地址指令,执行过程依赖于操作栈,指令集更小,编译器更容易实现
  4. 不需要硬件支持,可移植性更好,更好实现跨平台

基于寄存器架构的特点

  1. 典型的应用是x86的二进制指令集;比如传统的PC以及Android的Davlik虚拟机
  2. 指令集架构完全依赖硬件,可移植性差
  3. 性能优秀和执行更高效
  4. 花费更少的指令去完成一项操作
  5. 在大部分情况下,基于寄存器架构的指令集往往都以一地址指令,二地址指令和三地址指令为主,而基于栈式架构的指令集却是以零地址指令为主。

虚拟机的启动:
引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的。
虚拟机的执行:
一个运行中的Java虚拟机有清晰的任务:执行Java程序,程序开始执行他才运行,程序技术就停止。
执行一个Java程序时,真真正正正在执行的是叫Java虚拟机的进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值