03 2021 档案

摘要:自动内存管理 特指java堆、方法区两个区域的内存的分配与回收。 判断对象是否"存活" 引用计数算法 在对象中添加一个引用计数器,每当一个地方引用它时,计数器加一;当引用失效时,计数器减一;在任何时候,计数器为0的对象不可能再被使用。 主流的java虚拟机中没有使用引用计数算法来管理内存,因为有很多 阅读全文
posted @ 2021-03-16 19:51 keepkeep 阅读(119) 评论(0) 推荐(0)
摘要:ReentrantReadWriteLock ReentrantReadWriteLock:读写锁,在执行读操作时可以异步执行。读-读异步,读-写异步,写-写异步。 ReentrantLock是完全互斥排他的,效率低; ReentrantReadWriteLock有两个锁: 读相关的锁:共享锁 写相 阅读全文
posted @ 2021-03-11 20:51 keepkeep 阅读(85) 评论(0) 推荐(0)
摘要:Reentrantlock类 JDK1.5新增的ReentrantLock类,重入锁。 ReentrantLock是独占锁且可重入的 ReentrantLock和synchronized 相同点: ReentrantLock和synchronized都是独占锁,只允许线程互斥的访问临界区 Reent 阅读全文
posted @ 2021-03-11 20:46 keepkeep 阅读(123) 评论(0) 推荐(0)
摘要:对象的内存布局 在HotSpot虚拟机中,对象在堆内存中的存储布局可以划分为三个部分:对象头Header、实例数据Instance Data和对齐填充Padding 对象头 HotSpot虚拟机的对象头有两类信息: 对象自身的运行时数据 类型指针 对象自身的运行时数据: 哈希码、GC分代信息、锁状态 阅读全文
posted @ 2021-03-09 15:28 keepkeep 阅读(85) 评论(0) 推荐(0)
摘要:对象的创建 当虚拟机遇到一条 字节码new指令时, 检查这个指令的参数是否在常量池中定位到一个类的符号引用; 并检查这个符号引用代表的类是否已被 加载、解析、初始化过,如过没有,必须执行相应的类加载过程; 在类加载检查通过之后,虚拟机将会为新生对象分配内存 对象所需的内存在类加载后就可以完全确定; 阅读全文
posted @ 2021-03-09 15:16 keepkeep 阅读(44) 评论(0) 推荐(0)
摘要:运行时数据区 程序计数器 也叫PC寄存器 它是一块较小的内存空间; 当前线程执行的字节码的行号指示器,是程序控制流的指示器; 每个线程都有一个独立的程序计数器,线程间的计数器互不影响,独立存储,属于“线程私有”的内存; 如果线程正在执行的是一个java方法,那么程序计数器记录的应该是正在执行的虚拟机 阅读全文
posted @ 2021-03-09 14:26 keepkeep 阅读(63) 评论(0) 推荐(0)