JVM之内存与垃圾回收——JVM与Java体系结构

JVM之内存与垃圾回收——JVM与Java体系结构,第1张

JVM之内存与垃圾回收——JVM与Java体系结构 JVM与Java体系结构 一、前言 实际开发中可能遇到的关于JVM的问题

为什么学JVM
  1. 面试都会问
  2. 追求极客精神
  3. 中高级Java程序员必备,项目管理,调优需要
二、JVM参考书目
  1. Oracle官方JVM规范
  2. 中文版Java虚拟机规范(JDK8)
  3. 《深入理解Java虚拟机》
  4. 《自己动手写Java虚拟机》
三、Java语言与JVM简介

Java是目前应用最广泛的软件开发平台之一。随着Java以及Java社区的不断壮大,Java不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。

Java语言跨平台,“write once, run anywhere”.

JVM:跨语言的平台

字节

字节码就是能在JVM上执行的一种文件格式。字节码不一定是由Java语言编译生成的,也有可能是由其他语言编译而成的。所以字节码又叫JVM字节码。

JVM只认字节码。字节码文件中包含了JVM指令集和符号表,还有一些其他辅助信息。

四、虚拟机与Java虚拟机 虚拟机

虚拟机其实就是一台虚拟的计算机。是一款软件,用来执行一系列虚拟计算机指令。

虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机(如VMWare)其实就是对物理计算机的仿真,而程序虚拟机(Java虚拟机)是专门为执行单个计算机程序而设计。

Java虚拟机

Java虚拟机就是一台执行字节码的虚拟计算机。

Java虚拟机主要特点
  1. 自动内存管理
  2. 自动垃圾回收
JVM的位置

JDK包含JRE,JRE包含JVM。

五、JVM的整体 下面这张图很重要!讲的是如何将class字节码文件转换为机器可以识别的机器代码。一定要能自己画出来!

六、Java代码的执行流程

七、JVM的架构模型

Java编译器输入的指令流是基于栈的指令集架构,另一种指令集架构是基于寄存器的指令集架构。

通过反编译认识基于栈的指令集架构

基于栈的指令集架构特点
  • 跨平台
  • 指令集小
  • 指令多
  • 执行效率不如基于寄存器的指令集架构
八、JVM的生命周期 JVM的启动

JVM的启动是通过引导类加载器创建一个初始类来完成的,这个类是由虚拟机的具体实现指定的。

JVM的执行

JVM的运行就是为了执行Java程序的。

程序开始执行时JVM开始运行,程序运行结束后JVM停止。

执行一个所谓的Java程序的时候,真正在执行的是一个叫做Java虚拟机的进程。

JVM的退出

当有如下事件发生时,JVM停止

  • 程序正常执行结束
  • 程序在执行过程中遇到了异常或错误而终止
  • 由于 *** 作系统出现错误而导致Java虚拟机进程终止
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit *** 作或halt *** 作。
九、JVM发展历程

SUM classic VM

Exact VM

HotSpot VM

JRockit VM

J9 VM

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5071136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存