
JVM
@milo
这个作者很懒,什么都没留下…
展开
-
了解Java对象,简单聊聊JVM调优分析
1、oop模型 Klass模型请看jvm底层之类加载,它是Java类的元信息在JVM中的存在形式。而oop模型是Java对象在JVM中的存在形式,在 Java 程序运行的过程中,每创建一个新的对象,在 JVM 内部就会相应地创建一个对应类型的 oop(普通对象指针) 对象。各种 oop 类的共同基类为 oopDesc 类。 在 JVM 内部,一个 Java 对象在内存中的布局可以连续分成两部分:对象头(instanceOopDesc) 和实例数据(成员变量)。 sychronized的底.原创 2020-12-15 02:14:52 · 306 阅读 · 0 评论 -
执行引擎、JIT、逃逸分析
执行引擎就是 JVM运行Java程序的一套子系统Java是半编译半解释型语言如果面试官问你这个问题,要分成两个角度来讲解 1、javac编译,java运行 2、运行期即时编译+解释执行(字节码解释器解释执行,模板解释器编译执行)两种解释器的底层实现JVM中目前来说有两种解释器具体细节见课堂上操作实战1、字节码解释器做的事情是:java字节码->c++代码->硬编码根据不同的字节码指令,执行不同的操作。比如下面代码0 new #4 <com/luban/tes.原创 2020-12-12 23:03:43 · 324 阅读 · 2 评论 -
内存池与JVM内存模型
可以这样理解:JVM内存模型其实就是JVM在启动的时候从操作系统内存中要了一块大内存,然后将这个大内存分成五个区域:方法区、堆区、虚拟机栈、本地方法栈、程序计数器。 这里说的JVM内存模型其实在JVM中是不存在这个实体的,而是将CHeapObj,ValueObj,AllStatic这三的类的子类统称为内存模型。注意区分JVM内存模型与JMM(Java Memory Model)四个名词class文件即硬盘上的.class文件class content类加载器将硬盘上的.class文原创 2020-12-08 22:07:37 · 221 阅读 · 2 评论 -
类加载器子系统与SPI
本篇主要记录一下类加载器类加载子系统 = 三层类加载器 + 双亲委派类加载器 JVM中有两种类型的类加载器,由C++编写的及由Java编写的。除了启动类加载器(Bootstrap Class Loader)是由C++编写的,其他都是由Java编写的。由Java编写的类加载器都继承自类java.lang.ClassLoader。 另外JVM还支持自定义类加载器。 各种类加载器之间存在着逻辑上的父子关系,但不是真正意义上的父子关系,因为它们直接没有从属关系。启动类加载器 因为启动原创 2020-12-06 00:37:43 · 163 阅读 · 0 评论 -
JVM底层之类加载
1、Klass模型首先明确class 和klass的区别: class是Java类(Java代码),而klass是Java类在JVM的存在形式(c++代码)Java的每个类,在JVM中,都有一个对应的Klass类实例与之对应,存储类的元信息如:常量池、属性信息、方法信息……从继承关系上也能看出来,类的元信息是存储在原空间的(instanceKlass) ,对象是存储在堆区的(InstanceMirrorKlass)类加载器将.class文件加载进系统,将.class文件解析,那么生成的是什么原创 2020-12-04 19:21:53 · 607 阅读 · 0 评论