1. 尽量避免随意使用静态变量
当某个对象被定义为static的变量引用时,那么GC通常是不会回收这个对象所占用的内存
public class A {
static B b = new B(); // 静态变量b的生命周期与A类同步, 只要A类不被卸载,那么b对象就会常驻内存,直到程序终止
}
2. 处理好包装类型和基本类型的使用场所
虽然包装类型和基本类型在使用过程中是可以...
分类:
编程语言 时间:
2015-04-19 22:52:11
阅读次数:
265
本文是成为Java GC专家系列文章的第二篇。在第一篇《深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,以及这5种类型对于应用性能的影响。在本文中,我将解释JVM到底是如何执行垃圾回收处理的。什么是GC监...
分类:
编程语言 时间:
2015-04-19 16:01:04
阅读次数:
218
这是“成为Java GC专家”系列的第五篇文章。在第一篇深入浅出Java垃圾回收机制中,我们已经学习了不同的GC算法流程、GC的工作原理、新生代(Young Generation)和老年代(Old Generation)的概念。你应该了解了JDK7中5种GC类型以及各种类型对应用程序的影响。在第二篇...
分类:
编程语言 时间:
2015-04-19 15:58:46
阅读次数:
154
在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。Java GC监视和分析工具下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过...
分类:
编程语言 时间:
2015-04-19 15:57:03
阅读次数:
165
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开...
分类:
编程语言 时间:
2015-04-19 15:54:06
阅读次数:
199
本文是成为Java GC专家系列文章的第三篇。在第一篇《成为JavaGC专家Part I — 深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,以及这5种类型对于应用性能的影响。在第二篇《成为JavaGC专...
分类:
编程语言 时间:
2015-04-19 15:50:27
阅读次数:
212
一、java中的四种引用简介
1、强引用:创建对象的引用,GC抛出OOM也不回收内存
2、软引用:在OOM之前回收内存
3、弱引用:在GC发现之后释放内存
4、虚引用(幽灵引用):使用后就释放
二、软引用的使用
1、用途:软引用是主要用于内存敏感的高速缓存,在jvm报告内存不足之前会清除所有的软引用,这样以来gc就有可能收集软可及的对象,可能解决内存吃紧问题,避免内溢出。
2、引用的...
分类:
编程语言 时间:
2015-04-18 16:16:22
阅读次数:
192
2004年毕业的时候,听说Java程序员工作比较好找,就这样开始与Java结缘。一晃10几年过去了,做了很多项目,也发布了一些Java方面的技术性文章,总的来说,这10年时间一直都在与一个永恒的话题纠缠—“性能优化”。
回想一下,我的大多数时间都被花在了处理整个大型系统的性能提升方面,遇到的问题很多情况下是本可以使用O(log N)算法,结果我却使用了O(n2)算法,此外,一直在纠缠于GC性能优...
分类:
编程语言 时间:
2015-04-18 07:34:57
阅读次数:
174
Java经过近20年的演变,已经发展出一套复杂、健壮和高性能的垃圾收集器。在不同的应用场合下使用不同的GC组合能让程序性能得到可观提高。我想这也是Java这么多年来一直处于不败之地的原因之一。以下讨论只限于Server模式下的HotSpot JVM。GC的类型Sun/Oracle的HotSpot JVM为我们提供了多种不同的GC,一种GC只专门负责新生代或老年代的内存回收工作,所以实际使用的时候需要...
分类:
编程语言 时间:
2015-04-18 06:29:24
阅读次数:
174
名称(省略双划线)
说明
call
为实例添加调用方法,如实例x是Class C的实例,则调用x()时会调用Class的call方法
cmp
比较方法
del
垃圾回收之前会调用,开发的时候要小心使用这个方法,因为这个方法可能会引起不会进行GC
delattr
当要求解除绑定关系时,会调用这个方法
...
分类:
编程语言 时间:
2015-04-16 17:43:16
阅读次数:
226