JVM笔记 -- JVM的发展以及基于栈的指令集架构

本文介绍了JVM的发展,重点解析了基于栈的指令集架构,包括其特点和优势。Java代码经过编译成为字节码,由JVM执行,其中JVM结构包含类加载器、运行时数据区和执行引擎。JVM的执行流程涉及词法分析、语法分析等步骤,最终通过JIT编译器将热点代码编译为机器指令。文章还对比了基于栈和寄存器的指令集架构,强调了栈架构的可移植性和编译器实现的简易性。
摘要由CSDN通过智能技术生成
    1. 2011年,JDK7发布,1.7u4中,开始启用新的垃圾回收器G1(但是不是默认)。
    1. 2017年,发布JDK9G1成为默认GC,代替CMS。(一般公司使用jdk8的时候,会通过参数,指定GCG1)
    1. 2018年,发布JDK11,带来了革命性ZGC,性能比较强。

虚拟机介绍

虚拟机,就是虚拟的计算机,可以执行一系列虚拟计算机指令,大体上可以分为系统虚拟机和程序虚拟机。它们运行时,都会受到虚拟机提供的资源的限制。

  • 系统虚拟机:仿真模拟系统的,比如Visual BoxVMware
  • 程序虚拟机:为执行单个计算机程序设计的,比如Java虚拟机。

JAVA虚拟机

Java虚拟机是一台执行字节码的虚拟机计算机,但是字节码不一定是由Java语言编译而成。但是只要使用这一套虚拟机规则的语言,就可以享受到跨平台,垃圾收集以及可靠的即时编译器。JVM和硬件之间没有直接的交互。

  • 一次编译,到处运行。
  • 自动内存管理
  • 自动垃圾回收

下面是ava平台文档中Java概念图的描述,可以看出javac命令在JDK中,也就是将.java文件编译成为.class文件,这个就是前端编译器,将源文件编译成为字节码。这个编译器不在JRE中,也说明了JRE不包括编译环境。

JRE和JDK都包括了JVM虚拟机。JRE是运行时环境,而JDK包含了开发环境。

JDK7 中java家族的结构组成 : https://docs.oracle.com/javase/7/docs/

JDK7 中java家族的结构组成 : https://docs.oracle.com/javase/8/docs/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值