
jvm世界
haitao111313
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集器
各种收集器介绍: Serial收集器:单线程收集器,必须暂停其他所有的工作线程,默认client模式下新生代的收集器 ParNew收集器:Serial的多线程版本,一般在Servr模式下的新生代首选收集器,除Serial外,目前只有它能与CMS收集器配合工作,ParNew收集器在单cpu的情况下不会有比Serial收集器更好的效果,甚至由于存在线程交互的开销,该收集器在通过超线程技术实原创 2012-09-06 19:50:41 · 2882 阅读 · 0 评论 -
一道笔试题的思考(一)
1:++操作为什么比+1操作高效,试从内存方面详细解释 都知道编译后++操作的指令比+1的少,所以肯定高效,但具体解释起来还要记住很多东西。++操作主要是通过字节码iinc指令来实现,其意思是:将指定的int型整型变量增加指定值。决定测试一下,以下代码: int i = 100; i++;编译成字节码后: bipush表示将单字节的原创 2012-09-24 20:59:53 · 1556 阅读 · 0 评论 -
JVM内存模型及垃圾收集简介
一:java内存区域和内存溢出测试 java内存分为线程共享的区域(方法区,堆)和线程不共享的区域(虚拟机栈,本地方法栈,程序计数器): 1,方法区:存放类信息,常量,静态变量,即时编译后的代码等。产生大量的类来填充方法区来测试方法区内存溢出。 2,堆:对象实例,包括数组。如果想要堆内存溢出,直接新建大量对象,然后保持对它的引用便可以了, 3,虚拟机栈:局部变量表(基本数据类型和对象引用)原创 2012-05-27 23:18:00 · 1048 阅读 · 0 评论 -
JVM类加载机制简介
类加载分7个步骤: 1:加载 1)通过一个类的全限定名来获取此类的二进制字节流 2)将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3)在Java堆中生成一个代表这个类的java.lang.Class对象,作为方法区这些数据的访问入口 2:验证 保证Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟原创 2012-09-09 13:00:08 · 1892 阅读 · 0 评论