`

java基础知识3---GC

阅读更多

1. 对象的状态:可达状态,可恢复状态(通过finalize可能使对象重新被引用),不可达状态

 

2. 对象的引用

    强引用:常用的java引用

    软引用:用SoftReference类来实现,如果内存不紧张,调用垃圾回收的时候,就没事,如果内存紧张的话,就会回收

    弱引用:用WeakReference类来实现,只要调用垃圾回收,就会被回收。

    虚引用:用PhantomReference类实现,对象如果只有一个弱引用,则和没有一样,并且不能通过虚引用获得。

                虚引用主要用于跟踪对象被垃圾回收的状态,虚引用不能单独使用,必须和引用队列一起使用。

    弱引用、软引用和引用队列联合使用,则会在对象回收之后,把相关引用放到引用队列中

    虚引用则会在垃圾回收之前把虚引用放到

 

3. 内存管理的小技巧

    1. 尽量使用直接量;

    2. 使用StringBuilder和StringBuffer(线程安全)来进行字符串的连接

    3. 尽早释放不用的对象

    4. 尽量少使用static对象

    5. 不要在循环体中创建对象

    6. 缓存经常使用的对象  hashMap

    7. 尽量少使用finalize方法

    8. 考虑使用SoftReference方法。但是使用的时候要判断是否为空,因为不稳定,会在内存紧张的时候被回收

   

分享到:
评论

相关推荐

    Java基础知识总结 - 超详细篇收藏.zip

    这份“Java基础知识总结 - 超详细篇收藏”压缩包包含了关于Java编程的基础知识,是学习和复习Java语言的理想资源。以下是对其中可能涵盖的知识点的详细解释: 1. **Java环境搭建**:学习Java的第一步是安装JDK...

    JAVA基础-----面试宝典

    根据给定文件的信息,我们可以提炼出一系列与Java基础及面试相关的知识点,并进行详细的解析: ### 1. Spring、Hibernate、Struts的关系 Spring、Hibernate 和 Struts 是三个非常流行的 Java 框架,它们在 J2EE ...

    Java GC on HP-UX Itanium

    1. **Java基础架构**: - **J2SE**:Java 2 Software Developer’s Kit,标准版,包含了Java开发所需的工具和类库。 - **JVM**:Java虚拟机,负责执行字节码。它包含解释器和即时编译器(如HotSpot)。 - **JRE**...

    【IT十八掌徐培成】Java基础第26天-03.JVM结构-finalize-gc.zip

    在本课程"【IT十八掌徐培成】Java基础第26天-03.JVM结构-finalize-gc"中,我们将深入探讨JVM的结构、`finalize`方法以及垃圾收集(Garbage Collection,简称GC)机制。以下是这些主题的详细阐述: 1. JVM结构: - ...

    JAVA基础知识精华总结.rar

    在《JAVA基础知识精华总结》中,我们可以期待涵盖以下几个关键领域: 1. **Java语法基础**:包括基本的数据类型(如整型、浮点型、字符型和布尔型)、变量、常量、运算符、流程控制(如条件语句if-else、循环for、...

    Java面试题大全--new

    以下是根据标题和描述推测的一些可能涵盖的Java知识点: 1. **基础概念** - Java的历史和发展:了解Java的起源、主要版本以及其在软件开发中的应用。 - Java的特点:讨论Java的跨平台性、自动内存管理、面向对象...

    java基础难点-更新版

    Java 基础知识点总结 Java 基础学习难点是一系列重要的知识点,掌握这些知识点对于 Java 开发者来说非常重要。下面是对 Java 基础学习难点的总结: 1. 接口和继承: * 接口不能被继承,但是可以被实现多次 * 类...

    JAVA核心面试知识整理-最全.zip

    这份“JAVA核心面试知识整理-最全.zip”压缩包提供了全面的Java面试准备材料,涵盖了Java基础、Java虚拟机(JVM)、多线程并发以及算法和Java中间件等多个关键领域。 首先,让我们深入Java基础。这部分通常包括Java...

    java私塾面试题----JAVA代码与编程3

    Java私塾面试题----JAVA代码与编程3涵盖了Java编程中的核心知识点,这些是面试官在评估候选人技术能力时经常会问到的问题。以下是一些关键的知识点解析: 1. **基本语法**:Java是一种强类型、面向对象的语言,面试...

    【Java技术资料】-JAVA核心知识点整理

    1. **Java基础** - **语法特性**:包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、比较、逻辑、位运算等)、流程控制(if-else、switch、for、while循环、break和continue)。 - **类...

    java面试——上海-携程-Java高级.zip

    1. **Java基础** - 内存管理:了解Java内存模型(堆、栈、方法区、本地方法栈)以及垃圾回收机制(GC),包括Minor GC、Major GC和Full GC。 - 数据类型:深入理解基本数据类型与引用数据类型的差异,以及自动装箱...

    《精通JAVA----JDK》

    《精通JAVA----JDK》这本书是为初学者提供的一份详尽的JAVA...以上就是《精通JAVA----JDK》这本书可能涵盖的部分关键知识点,通过深入学习和实践,初学者可以建立起坚实的Java编程基础,并逐步掌握更高级的开发技巧。

    Java基础知识小结

    ### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...

    java面试——深圳-OPPO-Java高级.zip

    1. **Java基础**: - 类与对象:深入理解封装、继承和多态的概念,以及它们在实际编程中的应用。 - 异常处理:了解try-catch-finally语句块,异常类型,自定义异常及其在程序中的最佳实践。 - 内存管理:理解Java...

    请不要忽视这些java基础知识

    ### 请不要忽视这些Java基础知识 #### 一、Final、Finally与Finalize的理解 在Java中,`final`、`finally`以及`finalize`是非常重要的概念,它们在不同的上下文中有着各自独特的含义。 - **Final**:关键字`final...

    java面试——南京-软通动力-Java中级.zip

    在Java中级面试中,软通动力作为一家知名的IT服务企业,通常会关注应聘者对Java基础知识、编程实践、设计模式以及并发处理等多方面的能力。这份资料“java面试——南京-软通动力-Java中级.zip”包含了一份详细的PDF...

    【Java面试资料】-JAVA核心面试知识点整理

    3. **异常处理**: 异常是程序运行时可能出现的问题,Java通过try-catch-finally结构来处理。理解异常分类和自定义异常是必备知识。 4. **内存管理与垃圾回收**: Java的自动内存管理是其一大特点。了解内存区域(堆...

    【Java面试资料】-Java面试准备指南

    1. **Java基础** - 数据类型:理解基本数据类型(如int、double)和引用数据类型(如类、接口、数组)的区别。 - 运算符:掌握各种运算符,包括算术、比较、逻辑、位运算符等。 - 控制流:熟练使用if-else、...

Global site tag (gtag.js) - Google Analytics