




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇报人 陈琦帆 JVM 汇报人 陈琦帆 JVM简介 目录 Java虚拟机和Java内存区域概述Java虚拟机栈和本地方法栈Java堆方法区和运行时常量池 Java虚拟机和Java内存区域概述 什么是虚拟机 什么是Java虚拟机Java虚拟机基础架构Java虚拟机运行时数据区程序计数器区域 Java虚拟机和Java内存区域概述 什么是虚拟机 什么是Java虚拟机 虚拟机定义 模拟某种计算机体系结构 执行特定指令集的软件系统虚拟机 VirtualBox VMware 进程虚拟机进程虚拟机JVM AdobeFlashPlayer FC模拟器高级语言虚拟机JVM NETCLR P Code Java虚拟机和Java内存区域概述 什么是虚拟机 什么是Java虚拟机 Java语言虚拟机可以执行Java语言的高级语言虚拟机 Java语言虚拟机并不一定就可以称为JVM 譬如 ApacheHarmonyJava 虚拟机必须通过JavaTCK TechnologyCompatibilityKit 的兼容性测试的Java语言虚拟机才能称为 Java 虚拟机 Java 虚拟机并非一定要执行 Java 程序业界三大商用JVM OracleHotSpot OracleJRockitVM IBMJ9VM Java虚拟机和Java内存区域概述 JAVA虚拟机架构 该图参考了网上广为流传的JVM构成图 大家看这个图 整个JVM分为四部分 ClassLoader类加载器ExecutionEngine执行引擎NativeInterface本地接口Runtimedataarea运行数据区 Java虚拟机和Java内存区域概述 什么是虚拟机 什么是Java虚拟机 OracleHotSpot虚拟机最初由名为 LongviewTechnologies 的小公司开发 后被Sun公司收购 最初并非面向Java语言开发 而是面向Strongtalk语言 HotSpot命名来自它的 热点代码探测 技术 从JDK1 2开始加入Sun Oracle JDK 在JDK1 3开始成为Sun Oracle JDK的默认实现 在1 4中成为唯一的虚拟机 在2006年底开始开源 由此建立的OpenJDK项目 本系列课程中所有的虚拟机实现 所指的都是OracleHotSpot虚拟机 Java虚拟机和内存区域概述 Java虚拟机运行时数据区 Java虚拟机运行时数据区在 Java虚拟机规范 中定义了若干种程序运行期间会使用到的存储不同类型数据的区域 有一些区域是全局共享的 随着虚拟机启动而创建 随着虚拟机退出而销毁 有一些区域是线程私有的 随着线程开始和结束而创建和销毁 是所有Java虚拟机共同的内存区域概念模型 Java虚拟机和内存区域概述 Java虚拟机运行时数据区 运行时数据区的划分程序计数器Java堆Java虚拟机栈本地方法栈方法区 Java虚拟机和内存区域概述 程序计数器区域 程序计数器 ProgramCounterRegister 一块较小的的内存空间 它的作用可以看作是当前线程所执行的字节码的行号指示器 如果线程正在执行的是一个Java方法 这个计数器记录的是正在执行的虚拟机字节码指令的地址 如果正在执行的是Native方法 这个计数器值则为空 此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域 JVM自动内存管理 内存区域基础概念 Java虚拟机栈和本地方法栈 Java虚拟机栈和本地方法栈 Java虚拟机栈的概念和特征本地方法栈的概念和特征栈帧概念和特征本地变量表和操作数栈实战内存异常实战 Java虚拟机栈和本地方法栈 Java虚拟机栈的概念和特征 Java虚拟机栈的特征线程私有后进先出 LIFO 栈存储栈帧 支撑Java方法的调用 执行和退出可能出现OutOfMemoryError异常和StackOverflowError异常 Java虚拟机栈和本地方法栈 本地方法栈的概念和特征 Java本地方法栈的特征线程私有后进先出 LIFO 栈作用是支撑Native方法的调用 执行和退出可能出现OutOfMemoryError异常和StackOverflowError异常有一些虚拟机 如HotSpot 将Java虚拟机栈和本地方法栈合并实现 Java虚拟机和内存区域概述 栈帧概念和特征 栈帧的概念和特征Java虚拟机栈中存储的内容 它被用于存储数据和部分过程结果的数据结构 同时也被用来处理动态链接 方法返回值和异常分派一个完整的栈帧包含 局部变量表 操作数栈 动态连接信息 方法正常完成和异常完成信息 Java虚拟机和内存区域概述 栈帧概念和特征 局部变量表概念和特征由若干个Slot组成 长度由编译期决定单个Slot可以存储一个类型为boolean byte char short float reference和returnAddress的数据 两个Slot可以存储一个类型为long或double的数据 局部变量表用于方法间参数传递 以及方法执行过程中存储基础数据类型的值和对象的引用 Java虚拟机和内存区域概述 栈帧概念和特征 操作数栈的概念和特征是一个后进先出栈 由若干个Entry组成 长度由编译期决定单个Entry即可以存储一个Java虚拟机中定义的任意数据类型的值 包括long和double类型 但是存储long和double类型的Entry深度为2 其他类型的深度为1在方法执行过程中 栈帧用于存储计算参数和计算结果 在方法调用时 操作数栈也用来准备调用方法的参数以及接收方法返回结果 Java虚拟机栈和本地方法栈 栈帧实战 通过一个具体例子来演示栈帧的局部变量表和操作数栈的工作方式 Java虚拟机栈和本地方法栈 内存异常实战 Java虚拟机栈和本地方法栈可能发生如下异常情况 如果线程请求分配的栈容量超过Java虚拟机栈允许的最大容量时 Java虚拟机将会抛出一个StackOverflowError异常 如果Java虚拟机栈可以动态扩展 并且扩展的动作已经尝试过 但是目前无法申请到足够的内存去完成扩展 或者在建立新的线程时没有足够的内存去创建对应的虚拟机栈 那Java虚拟机将会抛出一个OutOfMemoryError异常 Java虚拟机栈和本地方法栈 内存异常实战 虚拟机栈栈溢出的实例演示 JVM自动内存管理 内存区域基础概念 Java堆 Java堆 Java堆的概念栈与堆Java堆内存异常实战 Java堆 Java堆的概念 Java堆的特征全局共享通常是Java虚拟机中最大的一块内存区域作用是做为Java对象的主要存储区域JVMS明确要求该区域需要实现自动内存管理 即常说的GC 但并不限制采用哪种算法和技术去实现可能出现OutOfMemoryError异常 Java堆 栈与堆 从栈到堆的关联过程 Objectobj newObject Java堆 Java堆内存异常实战 Java堆可能发生如下异常情况 如果实际所需的堆超过了自动内存管理系统能提供的最大容量 那Java虚拟机将会抛出一个OutOfMemoryError异常 JVM自动内存管理 内存区域基础概念 方法区和运行时常量池 方法区和运行时常量池 方法区的概念运行时常量池的概念HotSpot方法区实现的变迁方法区内存异常实战 方法区和运行时常量池 方法区的概念 方法区的特征全局共享作用是存储Java类的结构信息JVMS不要求该区域实现自动内存管理 但是商用Java虚拟机都能够自动管理该区域的内存可能出现OutOfMemoryError异常 方法区和运行时常量池 运行时常量池的概念 运行时常量池的特征全局共享是方法区的一部分作用是存储Java类文件常量池中的符号信息可能出现OutOfMemoryE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东工资管理自考试题及答案
- 乐理补考试题及答案
- 快速加油考试题及答案
- 口腔辞职考试题及答案
- 客房清扫考试题及答案
- 考古测绘考试题及答案
- 铝电解操作工设备调试考核试卷及答案
- 2025年教师招聘之《幼儿教师招聘》试题一及答案详解【夺冠】
- 课件文案简短句子
- 金属铸造考试题及答案
- 【MOOC】医学心理学-北京大学 中国大学慕课MOOC答案
- 大型活动火灾应急预案
- 剪映专业版教学课件
- 地坪拆除服务合同
- DB22T 277-2011 建筑电气防火检验规程
- 广东省执法证网上考试系统题库及答案
- 《建筑设计基础》全套教学课件
- 统编2024版七年级语文上册全册知识点梳理
- 2024年新青岛版(六三制)六上科学全册知识点
- 山东省潍坊市寒亭区2023-2024学年七年级上学期9月入学测试数学试卷(含答案)
- 三轴搅拌桩安全技术交底(好)
评论
0/150
提交评论