Java
控方证人_
这个作者很懒,什么都没留下…
展开
-
Java运行时数据区
JVM将运行时数据区划分如下: 1. 堆区 堆区(Java Heap)通常是JVM所管理的内存中最大的,它是线程共享的区域,所有对象的实例都在堆上分配空间(也不十分绝对; 从内存回收的角度看,Java堆还可以细分为新生代与老年代、或Eden/From Survivor/To Survivor空间; 从内存分配的角度看,堆会划分出多个线程私有的分配缓冲区(TLAB),以提高分配效率,减少线程...原创 2018-12-29 14:52:26 · 122 阅读 · 0 评论 -
Java并发编程中的底层原理
阅读《深入浅出Java Concurrency》过程中的整理 http://www.blogjava.net/xylz/archive/2010/07/08/325587.html 原子操作 AtomicInteger AtomicIntegerArray 指令重排序 JVM只保证程序最终结果等同于顺序时的结果,指令的实际执行顺序与代码顺序可能不一致。意义是根据处理器的特点,进行适当的重排序可以...原创 2018-12-29 15:06:37 · 134 阅读 · 0 评论 -
老生常谈的java垃圾回收机制
一、确定被回收的对象 1. 引用计数(Reference Counting) 给对象添加一个引用计数器,当该对象被其他对象引用时,计数器加一;引用失效时计数器减一;引用数为0的对象就是需要被回收的对象。 这样的算法实现简单,但也存在弊端,比如有两个对象相互引用,但却没有其他任何地方引用它们,它们应当被视为“垃圾”,但他们的引用计数器并不为0; 2.可达性分析(Reachability Analys...原创 2018-12-29 15:17:48 · 178 阅读 · 0 评论