可触及的 1.从根节点可以触及到这个对象可复活的 1.一旦所有引用被释放,就是可复活状态 2.因为在finalize()中可能复活该对象不可触及的 1.在finalize()后,可能会进入不可触及状态 2.不可触及的对象不可能复活 3.可以回收 CanReliveObj finalize calle ...
分类:
其他好文 时间:
2017-05-30 19:29:40
阅读次数:
172
1.垃圾回收如何判定 1.1引用计数法 引用计数法是给对象添加一个引用计数器,当有对该对象的引用时,计数器加1,引用失效时,计数减1,计数器为0时不能再使用.该对象可以被垃圾回收器回收,但是存在一个问题,就是当两个对象相互进行引用时,它们的计数器最终都不会为0,导致垃圾回收器无法回收它们。 1.2可 ...
分类:
其他好文 时间:
2017-05-22 11:07:47
阅读次数:
240
20170308_java入门 对比C和C++ c是面向过程,c++和java都是杂合语言,但java中杂合并不像前者里那么重要,所以java是更加纯粹的面向对象语言。 java基本概念: 跨平台 通过JVM 垃圾回收 非即时的,按时间片查找回收,一般无法主动干预,仅界面编程中可用.gc()强制回收 ...
分类:
编程语言 时间:
2017-05-01 00:28:36
阅读次数:
179
jvm垃圾收集算法 1、引用计数算法每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回收。此方法简单,无法解决对象相互循环引用的问题。还有一个问题是如何解决精准计数。这种方法现在已经不用了 2、根搜索算法从GC Roots开始向下搜索,搜索所走过的路径称为引用链 ...
分类:
其他好文 时间:
2017-04-25 13:29:02
阅读次数:
205
Java堆内存 http://www.importnew.com/19593.html JVM诊断之查看运行参数 JVM 垃圾回收器工作原理及使用实例介绍 https://www.ibm.com/developerworks/cn/java/j-lo-JVMGarbageCollection/ Ja ...
分类:
其他好文 时间:
2017-04-18 18:22:57
阅读次数:
158
一、怀疑JVM内存溢出 排除 二、怀疑JVM垃圾回收时间过长 排除 三、怀疑死锁(暂未排除) 四、怀疑TCP状态CLOSE_WAIT(被动关闭连接) 五、怀疑数据库连接耗尽 <!--proxool连接池监控页面 --> <servlet> <servlet-name>DbPoolAdmin</ser ...
分类:
其他好文 时间:
2017-04-06 19:28:18
阅读次数:
400
JVM垃圾回收与性能调优总结 JVM调优的几种策略 一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配,P ...
分类:
其他好文 时间:
2017-04-05 01:00:07
阅读次数:
192
一.如何确定某个对象是“垃圾”? 二.典型的垃圾收集算法 三.典型的垃圾收集器 一.如何确定某个对象是“垃圾”? 在java中是通过引用来和对象进行关联的,也就是说如果要操作对象,必须通过引用来进行,那么显然一个简单的办法就是通过引用计数来判断一个对象是否可以被回收。如果一个对象没有任何引用与之相关 ...
分类:
其他好文 时间:
2017-04-04 19:31:44
阅读次数:
119
1.尽量少使用静态的变量,因为它会一直占用内存, 2.尽量少使用String字符串去做拼接,相加。因为String是定长的每次相加都会产生新的临时对象,生成垃圾对象,尽量使用StringBuffer,因为StringBuffer是变长。 3.对象用完后置为NULL值,这样JVM垃圾回收的时候就不会判 ...
分类:
编程语言 时间:
2017-04-01 23:08:37
阅读次数:
265
1. JVM 优化(Tomcat 启动行参数) Linux 修改 catalin.sh Windows 修改 catalin.bat Linux系统中tomcat的启动参数 export JAVA_OPTS="-server -Xms1400M -Xmx1400M -Xss512k -XX:+Agg ...
分类:
其他好文 时间:
2017-03-28 10:59:46
阅读次数:
207