JVM
JVM虚拟机
你就是神
这个作者很懒,什么都没留下…
展开
-
深入理解JAVA虚拟机学习笔记(十三)
第13章 线程安全与锁优化并发就完事了13.1 概述并发首先就是要保证正确性:避免数据在被中断期间修改和变脏。13.2线程安全当多个线程同时访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那就称这个对象是线程安全的13.2.1 Java语言中的线程安全不可变、绝对线...原创 2020-04-10 15:57:23 · 147 阅读 · 0 评论 -
深入理解JAVA虚拟机学习笔记(三)
三.垃圾收集器与内存分配策略3.2对象已死?主要有程序计数法和可达性法程序计数法占用了一些二wide空间来进行计数,每当被引用时计数值就加1,引用失效时,计数值就减1,任何计数器为0的对象即为不可用对象。但是,当面对两个对象相互引用的情况时,由于他们的相互引用,就导致双方的引用计数均不为0,导致使用计数法无法回收。可达性分析算法通过GCroots(根对象)作为起点,通过可达性分析算法来...原创 2020-04-10 11:23:04 · 235 阅读 · 1 评论 -
深入理解JAVA虚拟机学习笔记(一)
第2章 Java内存区域与内存溢出异常2.1概述对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每一个new操作去写配对 的delete/free代码,不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内存一切都很美好。不 过,也正是因为Java程序员把控制内存的权力交给了Java虚拟机,一旦出现内存泄漏和溢出方面的问 题,如果不了解虚拟机是怎样使用内存的,那排查错误...原创 2020-03-26 21:01:15 · 123 阅读 · 0 评论 -
深入理解JAVA虚拟机学习笔记(二)
2.4.1 Java堆溢出Java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么随着对象数量的增加,总容量触及最大堆的容量限制后就会产生内存溢出异常。Java堆内存的OutOfMemoryError异常是实际应用中最常见的内存溢出异常情况。出现Java堆内存溢出时,异常堆栈信息“java.lang.OutOfMemo...原创 2020-04-05 18:54:07 · 110 阅读 · 0 评论