JAVA笔记 JVM笔记
snow_7
想当个花瓶的程序媛
展开
-
JVM的内存分区----运行时的数据区域
对java程序员来说,在虚拟机自动管理机制的帮助下,不需要对每个new操作去写配对的delete/free代码,即java程序员把内存的控制权利交给了java虚拟机。运行时数据区域Java虚拟机在执行java程序的时候会把它管理的内存划分为若干个不同的区域,这些区域都有自己的用途和创建以及销毁时间。(1)程序计数器1)当前线程所执行的行号指示器。通过改变计数器的值来确定下一原创 2016-08-18 21:11:32 · 2831 阅读 · 0 评论 -
java中对象的引用类型及判断对象是否存活的算法
堆中几乎存放着Java世界中所有的对象实例,垃圾收集器在对堆回收之前,第一件事情就是要确定这些对象哪些还“存活”着,哪些对象已经“死去”(即不可能再被任何途径使用的对象)1.引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。 (1)原创 2016-08-19 10:27:45 · 3014 阅读 · 0 评论 -
JVM内存分配和垃圾回收策略
内存分配和回收策略Java技术体系所倡导的自动管理内存解决了两个问题:(1)给对象分配内存(2)回收分配给对象的内存对象内存的分配主要在Eden区上,少数会在老年代中。(1)对象有优先分在Eden区上 大多数情况下对象优先分配在Eden区上,当Eden区上没有足够空间进行分配的时候将发起一次MinorGC;(2)大对象直接进入老年代大对象是指需要大量原创 2016-08-22 10:35:19 · 553 阅读 · 0 评论 -
JVM垃圾收集算法
1、标记-清除算法算法分为两个阶段 标记和清除(1)标记出要回收的对象,在标记完成后统一回收未被标记的对象,从根节点出发,若是存在引用链就把对象进行标记。(2)不足:标记和清除的效率都低,二是空间问题,标记清除之后会产生大量的不连续的内存碎片,空间碎片太多的话,在程序运行期间,如果需要足够连续的内存空间时不得不提前出发另一次垃圾回收动作。2、复制算法将可用内存划原创 2016-08-22 10:39:08 · 586 阅读 · 0 评论 -
JVM垃圾收集器
Java有四种类型的垃圾回收器:(1)串行垃圾回收器(Serial Garbage Collector)(2)并行垃圾回收器(Parallel Garbage Collector)(3)并发标记扫描垃圾回收器(CMS Garbage Collector)(4)G1垃圾回收器(G1 Garbage Collector) 上面为新生代收集器,下面是老年代收集器。如果两个收集器之原创 2016-08-23 11:11:24 · 580 阅读 · 0 评论 -
JVM调优及参数设置
(1)参数-Xms:初始堆大小-Xmx :最大堆大小 此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存-Xmn :年轻代大小 整个堆大小=年轻代大小+ 年老代大小+ 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。-XX:NewSize:设置年轻代大小-XX:原创 2016-08-23 16:27:13 · 7172 阅读 · 3 评论