关于gc的编程,下面这篇文章写的不错。
http://www.ibm.com/developerworks/cn/java/l-JavaMemoryLeak2/
做图片缓存的时候确实不错。
在之前一个项目中,由于图片只占用43byte,就一直放在内存中强引用了,所以没有在意GC的事情。
但是精益求精的思路我们应该把SoftReference用上。
自己也弄了个demo
/**
* natasa develop group
*/
package com.panguso.gc;
import java.lang.ref.WeakReference;
/**
* @author piaohailin
* @date 2013-7-6
*/
public class Test {
/**
* @param args
*
* @author piaohailin
* @date 2013-7-6
*/
public static void main(String[] args) throws Exception {
Test test = new Test(); // 模拟图片对象
// 使用该对象
// SoftReference<Test> sr = new SoftReference<Test>(test);
WeakReference<Test> sr = new WeakReference<Test>(test);
test = null;
System.gc(); //有时候会回收,有时候不会回收
System.out.println("begin WeakReference");
// 下次使用
if (sr.get() != null) {
test = sr.get();
} else {
test = new Test();
sr = new WeakReference<Test>(test);
}
}
}
分享到:
相关推荐
Java优化编程是提升Java应用程序性能的关键技术,涵盖了多个方面的知识,包括代码优化、内存管理、垃圾回收、并发处理以及JVM参数调优等。以下是对这些主题的详细讲解: 1. **代码优化**:编写高效的Java代码是优化...
Java垃圾收集(Garbage Collection, 简称GC)是Java编程中的一项重要特性,它自动管理内存,释放不再使用的对象,避免了程序员手动管理内存可能导致的内存泄露问题。本篇将深入探讨Java中的GC过程。 一、Java内存...
Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 ...
《Java2编程详解》这本书是Java编程领域的一部经典之作,特别版的使用指南深入剖析了Java 2平台的核心技术和编程方法。这本书旨在帮助开发者掌握Java语言的基础以及高级特性,从而能够有效地进行软件开发。 首先,...
Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 ...
Java SE编程入门教程涵盖了许多核心概念,其中包括Java的垃圾回收机制(GC)。垃圾回收是Java虚拟机(JVM)的一项重要功能,它自动管理程序的内存,确保无用的对象所占用的内存得以释放,以便重新分配。开发者无需...
Java GC与性能调优 Java GC与性能调优是 Java programming language 中非常重要的一部分,直接影响着 Java application 的性能。本文档将对 Java GC 与性能调优进行详细的介绍。 一、 Java 平台的逻辑结构 Java ...
Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 ...
Java高级编程实用教程是针对已经掌握了Java基础的开发者们深入学习的一门课程,旨在提升他们的编程技巧和解决复杂问题的能力。本教程将涵盖多个关键领域,包括多线程、网络编程、I/O流、反射、异常处理、集合框架、...
Java动画编程是计算机图形学与Java技术结合的产物,它允许开发者在Java平台上创造视觉动画效果,以增强软件产品的交互性和视觉吸引力。然而,在进行Java动画编程时,开发者会面临一系列技术挑战,如动画性能问题、...
Java高级编程是一个涵盖广泛的主题,包括但不限于多线程、网络编程、I/O流、集合框架、反射、注解、设计模式、JVM优化等多个方面。这份"java高级编程.zip"的压缩包文件很可能是为了帮助Java开发者深入理解这些概念而...
Java作为一门广泛使用的编程语言,其高级编程内容涵盖了众多领域,包括但不限于面向对象设计、并发处理、内存管理、反射机制、泛型、IO流、网络编程等。本讲解大全将聚焦于这些核心主题,帮助致力于Java深层次研究的...
在Java高级编程面试中,掌握一系列关键知识点是至关重要的。这份"Java 高级编程面试准备资料"PDF文件,很可能是为了帮助求职者们更好地应对那些面向经验丰富的Java开发者的面试挑战。以下是一些可能涵盖的重要Java...
在Java编程中,垃圾收集(Garbage Collection, GC)是一项至关重要的机制,它负责自动管理内存,确保程序的稳定运行。面向GC的编程是优化Java应用程序性能的关键环节,特别是对于大规模系统或者内存敏感的应用,理解...
在现代软件开发中,Java作为一种广泛使用的编程语言,其强大的功能和高效性深受开发者喜爱。Java的自动内存管理机制是其一大亮点,尤其体现在垃圾收集(Garbage Collection, GC)方面。GC能够自动地识别不再使用的...
Java垃圾收集(GC)专题针对的是Java编程语言中内存管理机制的重要组成部分。Java自1996年推出以来,其最大的改进之一就是引入了受管内存。在Java之前,C和C++语言中的内存泄漏问题十分常见,这导致开发稳定和安全的...
虽然"ApacheMina入门(完成版).pdf"文件与GC直接关联不大,但它可以帮助Java程序员更好地理解网络编程和服务器端开发,这些也是Java应用的重要组成部分。 总的来说,理解Java的GC工作原理对于优化代码性能和解决...
在Java编程语言中,垃圾回收(Garbage Collection, GC)是一项至关重要的机制,它自动管理内存,释放不再使用的对象,防止内存泄漏。本篇将深入探讨如何监控Java的垃圾回收,帮助开发者提升应用性能和稳定性。 Java...
Java编程精选集锦,正如其名,是一本深入探讨Java编程技术的综合资源,涵盖了从基础知识到高级特性的广泛主题。这本书旨在提升程序员在电脑编程技巧与维护方面的专业能力,特别是针对Java这门广泛应用于企业级开发、...
- `java GC(垃圾回收)`解释了Java自动内存管理的过程。 - `java instanceOf`操作符用于检查对象是否是特定类或其子类的实例。 - `java IO`部分涉及输入输出流,这对于读写文件和网络通信至关重要。 - `java Math`...