![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JVM
文章平均质量分 93
JVM
Purine King
这个作者很懒,什么都没留下…
展开
-
JVM CAS与原子类
CAS与原子类原创 2023-01-10 20:00:02 · 365 阅读 · 0 评论 -
JVM Java内存模型(JMM)
Java内存模型原创 2022-12-16 21:07:40 · 576 阅读 · 0 评论 -
JVM 运行期优化 & 反射优化
运行期优化 & 反射优化原创 2022-11-12 10:40:34 · 587 阅读 · 0 评论 -
JVM 类加载器
类加载器原创 2022-11-01 20:28:19 · 461 阅读 · 0 评论 -
JVM 类加载
类加载原创 2022-10-20 21:16:17 · 531 阅读 · 0 评论 -
JVM 编译期处理(语法糖)
JVM 编译期处理 - 语法糖原创 2022-10-02 22:05:21 · 672 阅读 · 0 评论 -
JVM 类加载与字节码技术(2)《字节码指令/图解/条件判断指令/例子》
JVM 类加载与字节码技术原创 2022-09-20 21:17:57 · 646 阅读 · 0 评论 -
JVM 类加载与字节码技术(1)《类文件结构》
JVM 类文件结构原创 2022-07-28 20:59:47 · 221 阅读 · 0 评论 -
JVM 垃圾回收(四)《GC调优/案例》
JVM基础原创 2022-07-16 08:40:02 · 405 阅读 · 0 评论 -
JVM 垃圾回收(三)《垃圾回收器/G1》
JVM基础原创 2022-07-09 09:49:00 · 437 阅读 · 0 评论 -
JVM 垃圾回收(2)《垃圾回收算法/分代回收》
JVM垃圾回收原创 2022-06-21 21:01:07 · 236 阅读 · 0 评论 -
JVM 垃圾回收(1)《根对象/四种引用》
JVM垃圾回收原创 2022-06-08 20:56:06 · 983 阅读 · 0 评论 -
JVM 直接内存
直接内存 Direct Memory直接内存不是JVM里的内存,而是操作系统里的内存。(1)常见于NIO操作时,用于数据缓冲区(比如ByteBuffer使用的是直接内存)(2)分配、回收成本较高,但读写性能高// 演示ByteBuffer作用public class Demo { static final String FORM = "D:\\asd\\asd.mp4";// 选的是比较大的文件,比如200多兆 static final String TO = "D:\\asd.mp4";原创 2022-05-23 20:44:18 · 1633 阅读 · 0 评论 -
JVM 方法区 - 常量池(2)StringTable
JVM 方法区 - 常量池(1)概念StringTable(串池)是运行时常量池中的重要部分。public class Demo { public static void main(String[] args) { String s1 = "a"; String s2 = "b"; String s3 = "a" + "b"; }}假设有这段代码,先编译,编译成字节码以后,再通过反编译,查看他的常量池到底长什么样子。javap -v Demo.class在输出的一堆人类可看原创 2022-05-22 11:25:32 · 393 阅读 · 0 评论 -
JVM 方法区 - 常量池(1)
概念方法区是所有Java虚拟机线程共享的区域(这点跟堆有点像),这里存储了跟类的结构相关的一些信息,比如成员变量、方法数据以及成员方法、构造方法的代码部分,还有特殊方法(主要是指类的构造器)。因此可看出来,方法区存的是跟类相关的一些信息,还有运行时常量池。方法区是在虚拟机启动时被创建,方法区在逻辑上是堆的组成部分(可以理解为他在概念上定义了方法区,但是具体不同的JVM厂商去实现方法区时,不一定遵从这种逻辑上的定义,实际上是不是堆的一部分,不同的JVM厂商实现方式上是不一样的),这个规范并不强制你这个方法原创 2022-05-14 11:16:05 · 688 阅读 · 0 评论 -
JVM 堆
定义像程序计数器、本地方法栈、虚拟机栈都是线程私有的,而堆(Heap)、方法区都是线程共享的区域。通过new关键字创建的对象都会使用堆内存。特点它是线程共享的,堆中对象都需要考虑线程安全的问题。有垃圾回收机制,即堆中不再被引用的对象就会当成垃圾进行回收,已释放空闲的内存,这样不至于堆被创建的对象给撑爆。堆内存溢出堆内存有垃圾回收器,为何还会存在堆内存溢出问题呢?比如,对象被当做垃圾回收的条件是这个对象没人再使用他,但是如果不断的产生对象,而产生的这些新对象仍然有人在使用他呢?是不是意味着原创 2022-05-13 21:25:16 · 145 阅读 · 0 评论 -
JVM 栈
栈的数据结构先进后出Java虚拟机栈的概念英文全称是Java virtual machine stacks。比如,Java中每个线程运行的时候,需要给每个线程划分一个内存空间。虚拟机栈其实是线程运行时需要的内存空间。一个线程,就需要一个栈,如果是多个线程,就需要多个虚拟机栈。栈内由什么组成一个栈内,可以看做是由多个栈帧组成,比如,一些元素要放入栈的话,这些元素都称之为栈帧。什么是栈贞一个栈帧对应着一次方法的调用。因为线程最终是为了要执行代码的,这些代码又是由一个个的方法组成的,所以线程运行的时原创 2022-05-12 21:26:59 · 1124 阅读 · 0 评论 -
JVM 程序计数器
概念程序计数器的英文全称是Program Counter Register,又叫程序计数寄存器。Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。即在物理上实现程序计数器是通过一个叫寄存器来实现的,我们的程序计数器是Java对物理硬件的屏蔽和抽象,他在物理上是通过寄存器来实现的。寄存器可以说是整个CPU组件里读取速度最快的一个单元,因为读取/写指令地址这个动作是非常频繁的。所以Java虚拟原创 2022-05-11 12:11:57 · 3177 阅读 · 0 评论