![](https://img-blog.csdnimg.cn/20190927151117521.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Jvm
文章平均质量分 87
Jvm底层理解
只会写bug的靓仔
这个作者很懒,什么都没留下…
展开
-
jvm学习的核心(五)---垃圾回收算法和常见垃圾回收器
在并发标记阶段由于程序的工作线程和垃圾收集线程是同时运行或者交叉运行的,那么在并发标记阶段如果产生新的垃圾对象,CMs将无法对这些垃圾对象进行标记,最终会导致这些新产生的垃圾对象没有被及时回收,从而只能在下一次执行Gc时释放这些之前未被回收的内存空间。这个收集器是一个单线程的收集器,但它的“单线程”的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束(stop The world)。原创 2023-02-11 21:11:02 · 801 阅读 · 0 评论 -
jvm学习的核心(四)---执行引擎和字符串
JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被TVM所识别的字节码指令、符号表,以及其他辅助信息。那么,如果想要让一个Java程序运行起来,执行引擎(Execution Engine)的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。简单来说,JVM中的执行引擎充当了将高级语言翻译为机器语言的译者。解释器:当Java虚拟机启动时会根据预定义的规范对字节码。原创 2023-01-28 20:36:02 · 381 阅读 · 0 评论 -
jvm学习的核心(三)---运行时数据区详解(2)
一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。. Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。堆内存的大小是可以调节的。《Java虚拟机规范》规定,堆可以处于物理上不连续的内存空间中,但在逻辑上它应该被视为连续的。所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区( ThreadTLAB。原创 2023-01-21 17:37:38 · 752 阅读 · 0 评论 -
jvm学习的核心(三)---运行时数据区详解(1)
图片等相关信息来源于:尚硅谷宋红康JVM全套教程。原创 2023-01-14 18:19:02 · 222 阅读 · 1 评论 -
jvm学习的开端(一)----类的加载(类加载子系统)
来自百度百科:类加载器子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识。classLoader只负责class文件的加载,至于它是否可以运行,则由ExecutionEngine决定。加载的类信息存放于一块称为方法区的内存空间。除了类的信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是class文件中常量池部分的内存映射)原创 2023-01-01 21:12:57 · 286 阅读 · 1 评论 -
String常量池--相同的字符串什么时候返回false
这里问大家一个问题,这个答案的结果应该是什么?大家思考三秒钟。。。。。。。。公布答案了:是true。原创 2022-08-28 23:37:38 · 135 阅读 · 0 评论