JVM
zzzfeiyu
这个作者很懒,什么都没留下…
展开
-
深入理解JAVA虚拟机-JAVA内存区域
运行时数据区域 对象的创建与访问定位堆和方法区:都是为了共享资源而设计,逻辑上是等价的。但是方法区更侧重于保存"结构":存储运行时常量池,class信息,静态变量等,这些结构是更难解析,更难回收,并非GC的主要目标,可以用永久代实现。而堆更侧重保存"数据元":存放对象Instance,物理上并非连续,可以动态扩展,但不可超出可分配内存,否则OOM,是GC的主要目标,在堆内对In...原创 2019-09-19 11:34:43 · 63 阅读 · 0 评论 -
JVM结构学习
JDK、JRE、JVM:依次为开发包、运行环境、虚拟机。JDK是完整开发包,包括编译和运行环境以及其他。JRE包括JVM还有其他运行必须的库等。JIT:JVM是一个解释器解释字节码文件,但是对于其中需要反复执行的循环或者常用部分会显得很慢,这时引入了JIT,JIT是一个即时编译器,它使得字节码可以跳过解释环节直接转换成可执行的机器码,加快了执行速度。JVM功能:一段完整的java代码,首先...原创 2019-09-21 10:57:10 · 73 阅读 · 0 评论 -
深入理解JAVA虚拟机-类文件结构及加载
在现代编译器中通常会有前端,优化器和后端,前段可以输入不同的语言,后端可以基于目标机器不同的硬件采用不同的后端模块输出。这就保证了编译器的通用性,或者说无关性。在虚拟机中也是一样,虚拟机和字节码提供了虚拟的架构平台和数据存储格式,是实现语言无关性的基础。关于字节码,百度百科中是这样描述的:Java中,字节码是CPU构架(JVM)的具有可移植性的机器语言。[摘自java in a nutshe...原创 2019-09-26 21:37:01 · 238 阅读 · 0 评论 -
深入理解JAVA虚拟机-虚拟机字节码执行引擎
引擎(Engine)是电子平台上开发程序或系统的核心组件。利用引擎,开发者可迅速建立、铺设程序所需的功能,或利用其辅助程序的运转。一般而言,引擎是一个程序或一套系统的支持部分。以上是引擎的百度百科定义,在我看来,虚拟机字节码执行引擎的含义是:一套基于字节码-输出的概念模型,它屏蔽了虚拟机在内部选择编译和优化的部分,尽可能让你理解它的部件以及如何连接运作起来的,尽管内部比这个更复杂。首先来看...原创 2019-09-28 16:06:58 · 322 阅读 · 0 评论 -
深入理解JAVA虚拟机-自动装箱、拆箱
下面为第14行到26行的字节码编译文件,可以看到虚拟机是如何自动装箱和拆箱的,末尾会给出输出答案 L1 LINENUMBER 14 L1 ICONST_1 INVOKESTATIC java/lang/Integer.valueOf (I)Ljava/lang/Integer; ASTORE 2 //存入ICONST_1+I...原创 2019-10-07 11:20:47 · 243 阅读 · 0 评论