
《一起探索JVM》系列
JVM一直是面试的常考点,但却是大部分程序员的弱项,希望通过这一系列的文章给大家一点思路
Java鱼仔
你会累是因为你在走上坡路
-
原创 类加载的全过程,我给大家理一理
一个类从被加载到卸载出内存,一共包含下面七个阶段:加载、验证、准备、解析、初始化、使用、卸载2020-11-24 22:33:5774
0
-
原创 图解类加载器和双亲委派机制,一看就懂
虚拟机把Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成虚拟机可以直接使用的Java类型,这就是虚拟机的类加载机制。2020-11-21 20:41:47160
0
-
原创 关于垃圾收集器你了解多少?一文总结七大垃圾收集器
如果说垃圾收集算法是内存回收的理论,那么垃圾收集器就是内存回收的具体实现。2020-11-17 20:23:5999
0
-
原创 JVM垃圾回收机制是怎样的,何时触发YoungGC或FullGC操作,一文搞定
JVM垃圾回收机制是怎样的,何时触发YoungGC或FullGC操作2020-11-15 23:04:14364
0
-
原创 JVM的内存分代,这篇文章帮你理一理
堆内存是JAVA虚拟机所管理的内存最大的一块,Java堆被所有线程共享,几乎所有的对象实例都是在堆中分配内存,因此Java的堆是垃圾回收的主要区域。2020-11-12 20:14:5192
0
-
原创 java虚拟机(三)java的垃圾回收机制详解
java中的垃圾回收算法是如何确认哪些对象是活的,哪些对象是死的?对于判断对象是活是死,有两种不同的算法可以运用:引用计数算法:给对象中添加一个引用计数器,如果有一个地方引用他,计数值就加一,当引用失效后,计数值就减一。每次进行垃圾回收时,将那些引用计数器值为0的对象回收,这就是引用计数算法。但是java语言并没有选择这种算法,原因是当两个对象相互引用时,引用计数器的值永远不会等于0,...2019-11-09 22:28:38464
0
-
原创 java虚拟机(二)java虚拟机的内存溢出异常
除了程序计数器,虚拟机中的其他几个运行时数据区都有发生内存溢出异常的可能。Java堆内存溢出:Java堆的作用是存储对象实例,因此也意味着只要不断的创建对象,并且避免被垃圾回收,就会出现Java堆溢出的异常。首先在idea中设置JVM参数,在VM options中设置参数,具体步骤按如下:以下为JVM中配置的参数信息,-verbose:gc 表示打开GC的跟踪日志;-X...2019-09-25 20:25:46264
0
-
原创 java虚拟机(一)java虚拟机的运行时内存划分及对象创建过程
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,java虚拟机运行时数据区包括:方法区、虚拟机栈、本地方法区、堆、程序计数器,如下图所示:程序计数器:程序计数器的作用可以看成是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变计数器的值来选择下一条需要执行的字节码的指令。java虚拟机的多线程是通过线程轮流切换来分配处理器执行时间的...2019-09-21 21:02:58316
0