JVM
文章平均质量分 94
分享JVM相关知识
Code0cean
及时当勉励,岁月不待人
展开
-
从零开始学习JVM(八)- 垃圾回收相关概念与垃圾回收算法
Java程序中,垃圾是指运行程序中没有任何指针指向的对象,这个对象就是需要被回收的对象。如果不及时对内存中的对象进行清理,那么这些垃圾对象所占的内存空间会一直保留到程序运行结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢出。原创 2024-09-07 23:03:49 · 947 阅读 · 0 评论 -
从零开始学习JVM(七)- StringTable字符串常量池
String应该是Java使用最多的类吧,很少有Java程序没有使用到String的。在Java中创建对象是一件挺耗费性能的事,而且我们又经常使用相同的String对象,那么创建这些相同的对象不是白白浪费性能吗。所以就有了StringTable这一特殊的存在,StringTable叫做字符串常量池,用于存放字符串常量,这样当我们使用相同的字符串对象时,就可以直接从StringTable中获取而不用重新创建对象。原创 2024-09-07 21:23:57 · 1163 阅读 · 0 评论 -
从零开始学习JVM(六)-直接内存和执行引擎
直接内存不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。直接内存是在Java堆外的、直接向系统申请的内存空间。执行引擎是Java虚拟机核心的组成部分之一。“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式原创 2023-06-03 17:07:56 · 714 阅读 · 0 评论 -
从零开始学习JVM(五)-运行时数据区的方法区
方法区与Java堆一样,是各个线程共享的内存区域。方法区在JVM启动的时候被创建,并且它的实际物理内存空间中和Java堆区一样都是可以不连续的。方法区的大小跟堆空间一样,可以选择固定大小或者可扩展。当关闭JVM就会释放这个区域的内存。原创 2023-05-18 23:08:05 · 927 阅读 · 0 评论 -
从零开始学习JVM(四)-运行时数据区中的堆
《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上。数组和对象可能永远不会存储在栈上。因为栈帧中保存引用,这个引用指向对象或者数组在堆中的位置。堆是GC(Garbage Collectioni,垃圾收集器)执行垃圾回收的重点区域。在方法结束后,堆中的对象不会马上被移除,仅仅在垃圾收集的时候才会被移除。堆是GC(Garbage Collection,垃圾收集器)执行垃圾回收的重点区域。原创 2023-05-16 00:17:46 · 468 阅读 · 0 评论 -
从零开始学习JVM(三)--运行时数据区(程序计数器,虚拟机栈,本地方法栈)
JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的JVM对于内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来探讨一下经典的JVM内存布局。原创 2023-05-14 19:58:47 · 449 阅读 · 0 评论 -
从零开始学习JVM(二)--类加载子系统
JVM中的类加载器子系统负责从文件系统或者网络中加载Class文件,Class文件在文件开头有特定的文件标识。类加载器只负责class文件的加载,而它是否可以运行是由执行引擎决定的原创 2023-05-13 20:08:18 · 562 阅读 · 1 评论 -
从零开始学习JVM(一)--初识Java虚拟机
初步认识虚拟机与Java虚拟机原创 2023-05-12 00:25:11 · 454 阅读 · 1 评论