![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
我的程序才没有bug!
这个作者很懒,什么都没留下…
展开
-
JMM内存模型
Java内存模型(JMM):描述共享变量在并发场景下的访问规则(happens-before)主内存和工作内存:JMM主要是定义程序中各个变量的访问规则,变量(共享变量)包括字段,静态字段以及构成数组的元素.JMM规定所有共享变量都存储在主内存中(堆,方法区),每个线程还有自己的工作内存(虚拟机栈),线程的工作内存保存了该线程使用的变量的主内存副本,线程对变量的所有操作(读取,赋值)等都必须...原创 2019-12-20 18:23:17 · 169 阅读 · 0 评论 -
类加载机制
类加载过程类是在运行期间第一次使用时动态加载的,而不是一次性加载.因为如果一次性加载,会占用很多的内存.类的生命周期包括以下7个阶段:加载验证准备解析初始化使用卸载类加载过程包含了加载,验证,准备,解析,初始化这五个阶段.1.加载加载是类加载的一个阶段,加载过程完成以下三件事:通过类的完全限定名称获取定义该类的二进制字节流将该字节流表示的静态存储结构转换为方法区的...原创 2019-12-19 18:19:46 · 132 阅读 · 0 评论 -
内存分配策略与Full GC的触发条件
一.内存分配策略1.对象优先在Eden分配.大多数情况下,对象在新生代Eden区分配,当Eden区空间不够时,发起Minor GC.2.大对象直接进入老年代大对象是指需要连续内存空间的对象,最典型的大对象是那种很长的字符串以及数组.经常出现大对象的话会提前触发垃圾收集以获取足够的连续空间分配给大对象.-XX:PretenureSizeThreshold,大于此值的对象直接在老年代分配,避...原创 2019-12-16 17:34:00 · 145 阅读 · 0 评论 -
可达性分析与垃圾回收算法
在进行垃圾回收之前,需要判断对象是否已死.一共有两种方法:1.引用计数法算法思想:给每个对象附加一个引用计数器,每当有一个地方引用此对象时,计数器加一,每当有一个引用失效时,计数器减一,在任意时刻只要计数器为0,该对象就是不能再使用的,即对象已死.引用计数器实现简单并且判定效率较高,但是无法解决循环引用问题.(JVM并未采用此方法)2.可达性分析算法Java采用此算法来判断对象是否存活....原创 2019-12-16 12:10:22 · 636 阅读 · 0 评论