JVM
文章平均质量分 89
wasdasdfqwer
一路向前...
展开
-
Java内存区域与内存溢出异常与Eclipse运行速度调优
java虚拟机所管理的内存包括以下几个运行时数据区域,如图所示: 既:程序计数器,Java虚拟机栈,本地方法栈,Java堆和方法区。 程序计数器是一块较小的内存空间,他可以看作是当前线程执行的字节码的行号指示器。 由于java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时间,一个处理器(对于多核处理器来说是一个内核)都只会执行一个线程中的指令。因此原创 2015-05-09 13:59:34 · 3021 阅读 · 4 评论 -
虚拟机类加载机制
类加载的时机: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 其中准备、验证、解析3个阶段统称为链接。加载、验证、准备、初始化和卸载这5个步骤顺序是确定的,而解析阶段则不一定:在某些情况下可以再初始化阶段之后再开始, 这是为了支持Java语言的运行时绑定(也成为动态绑定或晚期绑定)。【动态绑定就是说在程序运行时自动原创 2015-04-21 22:13:45 · 644 阅读 · 0 评论 -
垃圾收集器与内存分配策略
1.对象已死吗? 在堆里存放这java世界几乎所有的对象实例,垃圾回收器在对堆进行回收前,第一件事就是要确定这些对象之中那些对象还“存活”着, 哪些对象已经“死去”(即不可能再被任何途径使用的对象)。 1.1 引用计数器法 给对象添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时就减1;任何计数器为0的对象就是不可能再被使用的。 引用计数器法实现简单,判断效率原创 2015-05-09 15:11:45 · 708 阅读 · 0 评论 -
java内存分配策略
1. 对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间时,虚拟机将发起一次Minor GC。在如下的测试代码中,尝试分配3个2MB大小和1个4MB大小的对象,在运行时通过参数-Xmx20M,-Xms20M,-Xmn10M这三个参数限制了java堆大小为20MB,不可扩展,其中10MB分配给新生代,剩下的非配给老年代。-XX:SurvivorRatio=8决定了新生代中Eden区与一个Survivor区的比例为8:1,即 Eden: from Survivor:原创 2015-05-14 00:05:04 · 1522 阅读 · 0 评论