1. 对象的状态:可达状态,可恢复状态(通过finalize可能使对象重新被引用),不可达状态
2. 对象的引用
强引用:常用的java引用
软引用:用SoftReference类来实现,如果内存不紧张,调用垃圾回收的时候,就没事,如果内存紧张的话,就会回收
弱引用:用WeakReference类来实现,只要调用垃圾回收,就会被回收。
虚引用:用PhantomReference类实现,对象如果只有一个弱引用,则和没有一样,并且不能通过虚引用获得。
虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,必须和引用队列一起使用。
弱引用、软引用和引用队列联合使用,则会在对象回收之后,把相关引用放到引用队列中
虚引用则会在垃圾回收之前把虚引用放到
3. 内存管理的小技巧
1. 尽量使用直接量;
2. 使用StringBuilder和StringBuffer(线程安全)来进行字符串的连接
3. 尽早释放不用的对象
4. 尽量少使用static对象
5. 不要在循环体中创建对象
6. 缓存经常使用的对象 hashMap
7. 尽量少使用finalize方法
8. 考虑使用SoftReference方法。但是使用的时候要判断是否为空,因为不稳定,会在内存紧张的时候被回收
分享到:
相关推荐
这份“Java基础知识总结 - 超详细篇收藏”压缩包包含了关于Java编程的基础知识,是学习和复习Java语言的理想资源。以下是对其中可能涵盖的知识点的详细解释: 1. **Java环境搭建**:学习Java的第一步是安装JDK...
根据给定文件的信息,我们可以提炼出一系列与Java基础及面试相关的知识点,并进行详细的解析: ### 1. Spring、Hibernate、Struts的关系 Spring、Hibernate 和 Struts 是三个非常流行的 Java 框架,它们在 J2EE ...
1. **Java基础架构**: - **J2SE**:Java 2 Software Developer’s Kit,标准版,包含了Java开发所需的工具和类库。 - **JVM**:Java虚拟机,负责执行字节码。它包含解释器和即时编译器(如HotSpot)。 - **JRE**...
在本课程"【IT十八掌徐培成】Java基础第26天-03.JVM结构-finalize-gc"中,我们将深入探讨JVM的结构、`finalize`方法以及垃圾收集(Garbage Collection,简称GC)机制。以下是这些主题的详细阐述: 1. JVM结构: - ...
在《JAVA基础知识精华总结》中,我们可以期待涵盖以下几个关键领域: 1. **Java语法基础**:包括基本的数据类型(如整型、浮点型、字符型和布尔型)、变量、常量、运算符、流程控制(如条件语句if-else、循环for、...
以下是根据标题和描述推测的一些可能涵盖的Java知识点: 1. **基础概念** - Java的历史和发展:了解Java的起源、主要版本以及其在软件开发中的应用。 - Java的特点:讨论Java的跨平台性、自动内存管理、面向对象...
Java 基础知识点总结 Java 基础学习难点是一系列重要的知识点,掌握这些知识点对于 Java 开发者来说非常重要。下面是对 Java 基础学习难点的总结: 1. 接口和继承: * 接口不能被继承,但是可以被实现多次 * 类...
这份“JAVA核心面试知识整理-最全.zip”压缩包提供了全面的Java面试准备材料,涵盖了Java基础、Java虚拟机(JVM)、多线程并发以及算法和Java中间件等多个关键领域。 首先,让我们深入Java基础。这部分通常包括Java...
Java私塾面试题----JAVA代码与编程3涵盖了Java编程中的核心知识点,这些是面试官在评估候选人技术能力时经常会问到的问题。以下是一些关键的知识点解析: 1. **基本语法**:Java是一种强类型、面向对象的语言,面试...
1. **Java基础** - **语法特性**:包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、比较、逻辑、位运算等)、流程控制(if-else、switch、for、while循环、break和continue)。 - **类...
1. **Java基础** - 内存管理:了解Java内存模型(堆、栈、方法区、本地方法栈)以及垃圾回收机制(GC),包括Minor GC、Major GC和Full GC。 - 数据类型:深入理解基本数据类型与引用数据类型的差异,以及自动装箱...
《精通JAVA----JDK》这本书是为初学者提供的一份详尽的JAVA...以上就是《精通JAVA----JDK》这本书可能涵盖的部分关键知识点,通过深入学习和实践,初学者可以建立起坚实的Java编程基础,并逐步掌握更高级的开发技巧。
### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...
1. **Java基础**: - 类与对象:深入理解封装、继承和多态的概念,以及它们在实际编程中的应用。 - 异常处理:了解try-catch-finally语句块,异常类型,自定义异常及其在程序中的最佳实践。 - 内存管理:理解Java...
### 请不要忽视这些Java基础知识 #### 一、Final、Finally与Finalize的理解 在Java中,`final`、`finally`以及`finalize`是非常重要的概念,它们在不同的上下文中有着各自独特的含义。 - **Final**:关键字`final...
在Java中级面试中,软通动力作为一家知名的IT服务企业,通常会关注应聘者对Java基础知识、编程实践、设计模式以及并发处理等多方面的能力。这份资料“java面试——南京-软通动力-Java中级.zip”包含了一份详细的PDF...
3. **异常处理**: 异常是程序运行时可能出现的问题,Java通过try-catch-finally结构来处理。理解异常分类和自定义异常是必备知识。 4. **内存管理与垃圾回收**: Java的自动内存管理是其一大特点。了解内存区域(堆...
1. **Java基础** - 数据类型:理解基本数据类型(如int、double)和引用数据类型(如类、接口、数组)的区别。 - 运算符:掌握各种运算符,包括算术、比较、逻辑、位运算符等。 - 控制流:熟练使用if-else、...