JVM简介—目录Java虚拟机和Java内存区域概述Java虚拟机栈和本地方法栈Java堆方法区和运行时常量池Java虚拟机和Java内存区域概述什么是虚拟机,什么是Java虚拟机Java虚拟机基础架构Java虚拟机运行时数据区程序计数器区域Java虚拟机和Java内存区域概述—什么是虚拟机,什么是Java虚拟机虚拟机定义:模拟某种计算机体系结构,执行特定指令集的软件系统虚拟机(VirtualBox、VMware),进程虚拟机进程虚拟机JVM、AdobeFlashPlayer、FC模拟器高级语言虚拟机JVM、.NETCLR、P-CodeJava虚拟机和Java内存区域概述—什么是虚拟机,什么是Java虚拟机Java语言虚拟机可以执行Java语言的高级语言虚拟机。Java语言虚拟机并不一定就可以称为JVM,譬如:ApacheHarmonyJava™虚拟机必须通过JavaTCK(patibilityKit)的兼容性测试的Java语言虚拟机才能称为“Java™虚拟机”Java™虚拟机并非一定要执行“Java”程序业界三大商用JVM:OracleHotSpot、OracleJRockitVM、IBMJ9VMJava虚拟机和Java内存区域概述—JAVA虚拟机架构该图参考了网上广为流传的JVM构成图,大家看这个图,整个JVM分为四部分:ClassLoader 类加载器ExecutionEngine 执行引擎NativeInterface本地接口Runtimedataarea运行数据区Java虚拟机和Java内存区域概述—什么是虚拟机,什么是Java虚拟机OracleHotSpot虚拟机最初由名为“LongviewTechnologies”的小公司开发,后被Sun公司收购。最初并非面向Java语言开发,而是面向Strongtalk语言。HotSpot命名来自它的“热点代码探测”技术。(Oracle)JDK,(Oracle)JDK的默认实现,。在2006年底开始开源,由此建立的OpenJDK项目。本系列课程中所有的虚拟机实现,所指的都是OracleHotSpot虚拟机。Java虚拟机和内存区域概述—Java虚拟机运行时数据区Java虚拟机运行时数据区在《Java虚拟机规范》中定义了若干种程序运行期间会使用到的存储不同类型数据的区域。有一些区域是全局共享的,随着虚拟机启动而创建,随着虚拟机退出而销毁。有一些区域是线程私有的,随着线程开始和结束而创建和销毁。是所有Java虚拟机共同的内存区域概念模型Java虚拟机和内存区域概述—Java虚拟机运行时数据区运行时数据区的划分程序计数器Java堆Java虚拟机栈本地方法栈方法区Java虚拟机和内存区域概述—程序计数器区域程序计数器(ProgramCounterRegister)一块较小的的内存空间,它的作用可以看作是当前线程所执行的字节码的行号指示器。如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是Native方法,这个计数器值则为空。此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。JVM自动内存管理:内存区域基础概念Java虚拟机栈和本地方法栈
JAVA虚拟机JVM介绍课件 来自淘豆网m.daumloan.com转载请标明出处.