内存管理
豆豆里有大白兔
我的小鱼你醒了,还认识早晨吗?昨夜你曾经说,愿夜幕永不开启。你的香腮边轻轻滑落的,是你的泪,还是我的泪?初吻吻别的那个季节,不是已经哭过了吗?我的指尖还记忆着,你慌乱的心跳。温柔的体香里,那一缕长发飘飘。
展开
-
内存溢出
堆(共享)内存溢出 异常信息:java.lang.OutOfMemoryError: Java heap space 原因:Java堆用于存储对象实例,对象数量达到最大容量后产生内存溢出 设置:-verbose:gc -Xms20M -Xmx20M -Xmm10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 处理: 1)用内存映像分析工具如Eclipse Mem原创 2016-08-16 08:38:53 · 341 阅读 · 0 评论 -
垃圾收集算法
介绍4种垃圾收集算法标记-清除算法此算法很简单,就是标记出所有需要回收的对象,全部标记完后,一起杀掉,它有两个缺点,一个是效率,另外一个空间,标记清除后会产生大量不连续的内存碎片复制算法为了解决效率问题,一种名叫复制的算法出现了,它将可用内存划分成大小相等的两块,每次只使用其中一块,当这一块内存满时,先把还活着的对象复制到另一块,然后把这一块内存一次清掉,这种方法简单高效,无碎片内存,但是内存缩小为原创 2016-08-16 08:43:46 · 280 阅读 · 0 评论 -
如何判断对象已死(可杀之)
已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了:引用计数给对象添加一个引用计数器,每当有一个地方引用他,计算器就加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是死的对象。 1. 这种方式被很多技术所采用,如FlashPlayer(AS3)、Python等,但是Java没有采用这种算法,原因是它很难解决对象之间相互循环引用的问题,例如 ObjectA.p原创 2016-08-16 08:41:21 · 748 阅读 · 0 评论 -
运行时数据区
Java虚拟机会在执行Java程序时将内存分为几个不同的管理区,这些区域各自有各自的用途,根据不同的特点,承担不同的任务以及在垃圾回收时运用不同的算法。总体分为下面几个部分: - 程序计数器(Program Counter Register) - JVM虚拟机栈(JVM Stacks) - 本地方法栈(Native Method Stacks) - 堆(Heap) - 方法区(Method原创 2016-08-05 15:16:02 · 293 阅读 · 0 评论 -
垃圾收集器
2个概念: ·并发:用户线程和垃圾收集线程同时执行(用户不需要等待) ·并行:多条垃圾收集线程并行工作(多线程工作)Serial收集器Serial是一个非并发非并行的收集器 1)这种收集器简单而高效,在某些应用场景中,本身分配内存不是很大,收集几十兆甚至一两百兆的新生代也就几十毫秒至一百多毫秒以内,这个停顿是可以接受的 2)一般用于Client模式下的虚拟机ParNew收集器ParNew是S原创 2016-08-17 16:37:22 · 291 阅读 · 0 评论 -
内存分配策略
对象优先在新生代的Eden上分配大对象直接进入老年代大对象就是需要大量连续内存的Java对象,如长字符串与数组,大对象可能导致内存还有不少剩余空间时就触发GC以获取足够的连续空间来安置这个大对象,所以写程序尽量避免大对象,特别是短命大对象 1)为了避免在Eden和两个Survivor之间发生大量的内存拷贝,大对象直接在老年代分配(有个值可以设置-XX:PretenureSizeThreshold,原创 2016-08-17 16:39:01 · 340 阅读 · 0 评论 -
一个GC考题
Just一个问题: 下面代码中,第几行的哪个对象符合垃圾回收标准? 1 Object a = new Object(); 2 Object b = new Object(); 3 Object c = new Object(); 4 a = b; 5 a = c; 6 c = null; 7 a = null; 答案: 知道第7行时才有一个对象c符合了垃圾回收标准原创 2016-04-06 20:29:18 · 359 阅读 · 0 评论 -
运行时栈帧之局部变量表
Slot单元的可重用性局部变量表的容量以slot为最小单位,一个slot可以存放32位数据类型,局部变量表中的slot是可以重用的,举个例子 public static void main(String[] args) { { byte[] pc = new byte[64*1024*1024]; // 64兆 } Sys原创 2016-08-20 11:05:05 · 1374 阅读 · 0 评论