jvm
张嘉烘
这个作者很懒,什么都没留下…
展开
-
jvm与String
jvm与StringString 的基本特性String的内存分配字符串拼接intern()的使用关于intern()的面试难题String 的基本特性String的内存分配字符串拼接intern()的使用关于intern()的面试难题判断下列对象是否相等...原创 2020-09-26 15:08:05 · 186 阅读 · 0 评论 -
java堆
java堆堆内存概述堆内存细分设置堆的大小堆——年轻代和老年代对象分配过程对象分配的特殊情况Minor GC、Major GC、Full GC内存分配策略TLAB堆空间参数设置逃逸分析堆内存概述堆内存细分设置堆的大小堆——年轻代和老年代对象分配过程对象分配的特殊情况Minor GC、Major GC、Full GC内存分配策略TLAB堆空间参数设置逃逸分析这个方法中的v就没有发生逃逸下面的方法可以避免逃逸...原创 2020-09-25 22:36:25 · 360 阅读 · 0 评论 -
jvm栈
jvm栈jvm栈简介栈帧与方法栈的优点栈可能出现的异常栈中存储着什么栈运行原理栈帧的内部结构栈帧——局部变量表关于Slot的理解静态变量与局部变量的对比栈帧——操作数栈jvm栈简介栈帧与方法栈的优点栈可能出现的异常栈中存储着什么栈运行原理栈帧的内部结构栈帧——局部变量表关于Slot的理解静态变量与局部变量的对比栈帧——操作数栈...原创 2020-09-25 20:27:33 · 209 阅读 · 0 评论 -
jvm关于类的加载
jvm关于类的加载1、类的加载过程加载链接验证准备解析初始化2、类加载器3、类的加载机制-双亲委派4、沙箱安全机制1、类的加载过程加载链接将Java类的二进制代码合并到JVM的运行状态之中。验证准备解析初始化2、类加载器类加载器负责加载所有的类,其为所有被载入内存中的类生成一个java.lang.Class实例对象。一旦一个类被加载如JVM中,同一个类就不会被再次载入了。正如一个对象有一个唯一的标识一样,一个载入JVM的类也有一个唯一的标识。在Java中,一个类用其全限定类原创 2020-09-25 11:16:47 · 122 阅读 · 0 评论 -
垃圾收集器
垃圾收集器相关概念新生代收集器Serial GCParNew收集器Parallel Scavenge 收集器老年代收集器Serial Old收集器Parallel Old收集器CMS收集器G1收集器最后相关概念并行和并发并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态。并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行。而垃圾收集程序运行在另一个CPU上。吞吐量(Throughput)吞吐原创 2020-09-25 09:50:24 · 107 阅读 · 0 评论 -
垃圾收集算法(思想非算法实现)
垃圾收集算法标记-清除算法复制算法(可用于新生代回收)标记—整理算法(可用于老年代回收)分代收集算法标记-清除算法标记—清除算法是最基础的收集算法,过程分为标记和清除两个阶段,首先标记出需要回收的对象,之后由虚拟机统一回收已标记的对象。这种算法的主要不足有两个:效率问题,标记和清除的效率都不高;空间问题,对象被回收之后会产生大量不连续的内存碎片,当需要分配较大对象时,由于找不到合适的空闲内存而不得不再次触发垃圾回收动作。复制算法(可用于新生代回收)复制算法的基本思路是:将内存划分为大小相等原创 2020-09-24 10:38:46 · 73 阅读 · 0 评论 -
对象已死?
对象已死?引用计数算法根搜索算法引用finalize()方法回收方法区我们怎么判断对象是否已经死亡呢?引用计数算法算法的优点使用引用计数器,内存回收可以穿插在程序的运行中,在程序运行中,当发现某一对象的引用计数器为0时,可以立即对该对象所占用的内存空间进行回收,这种方式可以避免FULL GC时带来的程序暂停算法的劣势采用引用计数器进行垃圾回收,最大的缺点就是不能解决循环引用的问题,例如一个父对象持有一个子对象的引用,子对象也持有父对象的引用,这种情况下,父子对象将一直存在于JVM的堆中,无法进原创 2020-09-24 09:51:28 · 154 阅读 · 1 评论 -
jvm部分概念
jvm各个区域的概念内存结构图:程序计数器:原创 2020-09-23 22:22:07 · 124 阅读 · 0 评论