jvm
文章平均质量分 88
panamera918
这个作者很懒,什么都没留下…
展开
-
JVM虚拟机(五)类加载机制
虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。在java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是得会为Java应用程序提供高度的灵活性,Java里天生可以动态扩展的语言特性就是依赖运行期动态加载和动态连接这个特点实现的。...原创 2018-06-29 16:09:46 · 145 阅读 · 0 评论 -
JVM虚拟机(一)
最近在看《深入理解java虚拟机:JVM高级特性与最佳实践》在这里记录备忘。Sun官方定义的java技术体系包括以下几个组成部分: Java程序设计语言 各种硬件平台上的虚拟机 Class文件格式 JavaAPI类库 来自商业机构和开源社区的第三方Java类库JDK(Java Development Kit):包括java程序设计语言、java虚拟机、Java API...原创 2018-06-26 09:33:30 · 126 阅读 · 0 评论 -
JVM虚拟机(二)java内存区域与内存溢出异常
对于java程序员来说,在虚拟机自动内存管理机制的帮助下,不在需要为每一个new操作去写配对的delete/free代码,不容易出现内存泄漏和内存溢出的问题,由虚拟机管理内存这一切看起来都很美好。不过也正是因为Java程序员把没存控制的权利交给了java虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是的怎样使用内存的,那么排查错误将会成为一项异常艰难的工作。一、运行时数据区域Java虚...原创 2018-06-26 15:33:46 · 149 阅读 · 0 评论 -
JVM虚拟机(六)虚拟机字节码执行引擎
所有Java虚拟机的执行引擎都是一致的:输入的字节码文件,处理过程是字节码解析的等效过程,输出的是执行结果。以下主要从概念模型的角度来讲解虚拟机的方法调用和字节码执行。1.运行时栈帧结构栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量,操作数栈、动态链接和方法返回地址等信息。对于执行引擎来说,在活动...原创 2018-07-02 10:02:46 · 154 阅读 · 0 评论 -
JVM虚拟机(三)类文件结构
代码编译的结果是从本地机器码转变为字节码,是存储格式发展的一小步,却是编译语言发展的一大步。一、Class类文件结构CLass文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全是程序运行的必要数据,没有空隙存在。当遇到需要占用8字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8...原创 2018-06-27 15:15:32 · 193 阅读 · 0 评论 -
JVM虚拟机(四)字节码指令
java虚拟机的指令集中,大多数的指令都包含了其操作所对应的数据类型信息。例如,iload指令用于从局部变量表中加载int型的数据到操作数栈中,而fload指令加载的则是float类型数据到操作数栈中。这两条指令的操作在虚拟机内部可能会是由同一段代码来实现的,但是在Class文件中它们必须拥有各自独立的操作码。对于大部分与数据相关的字节码指令,它们的操作码助记符中都有特殊的字符来表明专门为哪种数据...原创 2018-06-28 14:31:56 · 1088 阅读 · 0 评论 -
java回收
对象可达性分析这个算法通过一系列的称为“GC Roots“的对象作为起点,从这些起点开始往下搜索,搜索到所走过的路径称为引用链(Reference Chain),当一个对象到GC Root没有任何引用链时,则张光明此对象是不可用的。途中object6,object7虽然互相有关联,但是他们到GC roots是不可达的,所以他们被判定为可回收的对象。在Java语言中,可作为GC Roots对象包括下...原创 2018-07-06 21:04:50 · 203 阅读 · 0 评论 -
idea插件篇之java内存分析工具(JProfiler)
原文:https://blog.csdn.net/qq_22194659/article/details/83829891转载 2019-04-15 16:44:30 · 3053 阅读 · 0 评论