栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/396565.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号