JVM学习总结
文章平均质量分 65
Home_十一月的肖邦
人总要找一亩三分地,每天耕种,不然整天吊儿郎当,好没意思——2015-10-18
展开
-
关于java从编译成class文件到加载再到初始化过程解析
一、class文件组成 magic 魔数(标识是否为class文件) min_version 次版本号 major_version 主版本号 constant_pool_count 常量数量 contstant_pool_info 常量信息 access_flag 类的访问标识符 this_class原创 2015-10-18 18:56:43 · 2305 阅读 · 0 评论 -
关于jvm,加载的准备阶段一个考点
class Singleton{ public static Singleton t = new Singleton(); public static int count1; public static int count2 = 0; private Singleton(){ count1++; count2++; } public static Singleton getInst原创 2015-10-24 10:42:07 · 712 阅读 · 0 评论 -
垃圾回收过程
对于年轻代,刚开始创建的对象都是放置在eden区的,而将年轻代分成3个部分,主要是为了生命周期短的对象尽量留在年轻代。当eden区申请不到空间的时候,进行minorGC,把存活的对象拷贝到survior。年老代主要存放生命周期比较长的对象,比如缓存对象。具体jvm内存回收过程描述如下: 1、对象在Eden区完成内存分配; 2、当Eden区满了,再创建对象,会因为申请不到空间,触发minorGC,进转载 2016-03-21 14:47:19 · 1908 阅读 · 0 评论 -
锁优化学习总结(一)
锁优化主要分为两个层面:代码层、JVM层。 代码层:减少锁持有时间(锁粗化)、减小锁粒度(ConcurrentHashMap)、锁分离(ReadWriteLock读写分离)。 JVM层:锁消除(Vector等安全容器,运行时不会出现资源竞争,将锁消除)、偏向锁、轻量级锁、自旋锁、重量级锁。 偏向锁、轻量级锁并不是取代重量级锁,而是使用CAS原语减少线程进入互斥的概率。 偏向锁:是为了避免某线原创 2016-10-23 14:27:43 · 1178 阅读 · 0 评论 -
JVM垃圾收集机制
问题汇总:什么地方需要垃圾收集?哪些对象是要被回收的?垃圾回收算法有哪些?垃圾回收过程?主流的垃圾收集器? 问题一、什么地方需要垃圾收集? 答:JVM的五个内存模型,其中虚拟机栈(堆栈)、程序计数器、本地方法栈,随着线程的销毁而销毁。垃圾收集的主要是堆 和方法区。 问题二、哪些是要被回收的? 答:哪些对象要被回收是垃圾收集算法要面对的问题。主要通过两种方法来判断,引用计数法,根搜索法 1原创 2016-09-19 15:09:09 · 537 阅读 · 0 评论 -
JVM方法区内存回收
很多人认为方法区(或者HotSpot虚拟机中的永久代)是没有垃圾收集的,Java虚拟机规范中确实说过可以不要求虚拟机在方法区实现垃圾收集,而且在方法区进行垃圾收集的“性价比”一般比较低:在堆中,尤其是在新生代中,常规应用进行一次垃圾收集一般可以回收70%~95%的空间,而永久代的垃圾收集效率远低于此。永久代的垃圾收集主要回收两部分内容:废弃常量和无用的类。先来说说方法区内常量池之中主要存放的两大类常转载 2016-09-19 20:26:09 · 2216 阅读 · 1 评论