java | 3月 20 2016 JVM再探-垃圾收集器和内存分配策略 java程序内存的分配和释放都是由JVM进行管理的,新建一个对象等分配了一定的内存后,当对象不再被引用时,就需要释放对应的内存,这些都统一归JVM管理,对于JVM的内存释放我们称之为垃圾回收. 垃圾收集器算法JVM垃圾收集算法简单分为3类,标记-清除算法,复制算法以及标记-整理算法. 标记-清除算法标记内存中不再被引用的对象,然后在标记完成后进行统一回收.不足:一是效率问题,标记和清除的过程都需要花费一定时间;二是标记清除后产生大量不连续的内存碎片,当大的对象生成时需要 ...
java | 2月 28 2016 JVM初探-内存区域划分 最近写的爬虫抓取某写网站数据时,发现程序有出现OutOfMemory异常..记得以前面试的时候面试官问有没有遇到过OOM,我都不懂对方问的是啥..好了,扯点废话,接下来开始学习一下JVM相关的知识,以便于今后遇到OOM问题知道如何解决. 内存区域划分程序计数器可以看做是一小块内存区域用于存放当前线程所执行的字节码到什么位置了,我们都知道不同线程执行有个CPU轮询分配时间片的过程,假设是单核CPU,线程A执行到三分之一的位置,CPU由于执行线程B,线程A需要暂停执行.这时就 ...