`

j2se----内存泄露

    博客分类:
  • J2SE
阅读更多
第一种情况:
InputStream ips = new FileInputStream("conf.properties");
//使用ips

//使用完后关闭
ips.close(); //要读取外部文件,也就是要超越虚拟机的功能,需要借助操作系统的功能,所以需要占用操作系统的资源,这句话是告诉操作系统你的资源我用完了,请你回收吧
注意: close掉之后ips还在,虚拟机会来垃圾回收他(一般ips是局部变量,所以可以不手动设成null)。。。


为什么要关闭呢,因为如果不关闭的话,那么这个对象所关联的系统资源没有被释放。。。。造成内存泄露,close的语义是:告诉操作系统,把与之相关联的资源干掉。因为操作系统的资源虚拟机管不了的。。。


第二种情况:
一个对象被放入了Hash表中,然后他的hashCode的算法或者值别别人改变了,因为hashCode被改变了,使得我们无法从hash表中删除它,那么这个对象将得不到释放,导致内存泄露


分享到:
评论

相关推荐

    J2SE-孙鑫授课总结的ppt

    在内存管理方面,PPT会涉及Java内存模型(JVM内存结构),包括堆内存、栈内存、方法区、本地方法栈以及程序计数器等,还会讲解垃圾回收机制和内存泄漏的问题。这对于优化代码性能和避免程序出错有着直接的帮助。 ...

    j2se总结-一个学习java的总结笔记j2se部分

    - 需要注意避免对象长时间不被释放导致内存泄漏。 - 应及时释放不再使用的对象引用。 以上是关于J2SE的基础知识点总结,涵盖了Java的基础语法、数据类型、包管理、类与对象的概念以及垃圾回收等核心内容。对于...

    J2SE基础学习笔记

    Java的另一核心机制是垃圾回收机制,它自动回收不再被引用的对象所占用的内存,避免了C++程序员常见的内存泄漏问题。尽管这可能导致性能损失,但总体上提高了程序的稳定性和易用性。 Java的内存分为栈内存和堆内存...

    J2SE基础知识大全

    - **垃圾收集**:Java自动进行内存管理,理解如何避免内存泄漏和理解垃圾收集机制至关重要。 - **堆与栈内存**:理解对象在堆内存中分配,而局部变量在栈内存中的工作原理。 3. **集合框架** - **ArrayList、...

    j2se6中文网页版

    10. **垃圾回收与内存管理**:J2SE 6改进了垃圾回收算法,提升了内存管理效率,降低了内存泄漏的风险。 通过“j2se6中文网页版”,开发者可以轻松查找和学习这些功能,提升编程效率,编写出高效、稳定的Java应用...

    j2se_中文版

    8. 内存管理:Java使用垃圾收集器自动管理内存,避免了C++等语言中的内存泄漏问题。程序员无需手动释放内存,但了解如何优化对象生命周期和内存使用仍然是重要的技能。 中文版的J2SE API文档以中文解释了这些核心...

    J2SE学习入门教程

    8. **JVM和内存管理**:理解Java虚拟机(JVM)的工作原理,包括类加载机制、内存区域(如堆、栈、方法区)以及垃圾回收机制,对于优化程序性能和解决内存泄漏问题非常重要。 9. **编程实践**:理论知识的学习需要...

    J2SE5参考大全

    - **安全性**: 为了解决C++中的内存管理问题,Java引入了垃圾回收机制,自动管理内存,从而避免了常见的内存泄漏和释放错误。 - **网络能力**: Java从设计之初就考虑到了网络应用的需求,内置了对TCP/IP协议的支持,...

    J2SE相关

    3. **自动内存管理**:Java使用垃圾回收机制,自动管理内存,避免了常见的内存泄漏问题。 4. **安全**:Java具有内置的安全特性,如类加载器和安全管理器,确保程序在执行过程中不会对系统造成危害。 5. **异常...

    j2se7英文版api文档

    3. **try-with-resources**:这个特性允许在try语句块中声明资源(如文件流),系统会自动关闭它们,确保资源得到适当的释放,避免了内存泄漏。 4. **NIO.2(New IO 2)**:Java 7扩展了NIO(非阻塞I/O)框架,增加...

    (java)J2SE_核心技术基础

    了解JVM的工作原理,包括类加载机制、内存模型、垃圾回收等,有助于优化程序性能和解决内存泄漏问题。 九、泛型 泛型引入了类型参数,增强了代码的类型安全性,减少了类型转换的需要,提高了代码的可读性和可维护性...

    J2se的入门学习

    - **健壮性**:Java具有自动内存管理(垃圾收集机制),避免了C/C++中的内存泄漏和指针错误。 - **安全性**:Java提供了严格的类型检查和安全模型,减少程序出错的可能性。 4. **Java程序运行机制** Java程序从...

    Java-ppt.rar_J2se PPT

    Java通过垃圾回收机制简化内存管理,避免了C++中的内存泄漏问题。同时,其强类型系统和异常处理机制提高了代码的稳定性和可靠性。 2. **Java语法**:讲解基本的语法结构,如数据类型(原始类型与引用类型)、变量、...

    JAVA参考大全.J2SE.pdf.zip

    14. **性能优化**:学习如何分析和优化Java应用程序的性能,包括内存泄漏检测,代码优化技巧等。 这些知识点构成了Java开发者必备的基础技能,通过深入学习《JAVA参考大全.J2SE》,开发者能够全面理解Java语言,并...

    java内存管理白皮书-英文版

    在Java 2平台标准版(J2SE)中,自动内存管理是其核心优势之一。这使得开发人员免于处理复杂的显式内存管理问题。本文档旨在提供一个关于Java HotSpot虚拟机(JVM)内存管理的全面概览,特别是针对Sun的J2SE 5.0版本...

    J2SE学习笔录

    - 安全性高:具备内存管理和异常处理机制,减少了内存泄露等问题。 - 简洁高效:语法简洁,易于学习,同时性能较高。 #### Java运行环境搭建 1. **下载JDK1.6** - 下载地址:...

    J2SE基础.ppt

    此外,Java还包括垃圾收集机制,自动管理内存,防止内存泄漏,这是通过垃圾收集器在后台运行,检测并释放不再使用的对象所占用的内存。 Java虚拟机(JVM)是Java程序运行的基础,它使得Java具有跨平台能力。JVM将...

    J2SE学习中的30个基本概念

    - **健壮**: Java采用了一种自动垃圾回收机制(Garbage Collector),减少了内存泄漏等问题。 - **安全**: Java拥有严格的安全机制,包括沙箱模型和权限管理等,能够在不同环境中安全运行。 - **架构中立**: Java...

    java_moveball.rar_j2se

    但是,开发者需要注意避免创建过多的对象,以防内存泄漏。 10. **代码组织与设计模式**: - 良好的代码组织和设计模式的运用可以使项目更易于理解和维护。例如,小球和线条可能作为独立的类,每个类都有自己的属性...

    J2SE进销存管理系统系统设计

    《J2SE进销存管理系统系统设计》是一个基于Java SE(J2SE)平台的软件开发项目,旨在实现一套高效、稳定且易于操作的库存、销售和采购管理解决方案。在这个项目中,数据库设计报告和需求分析是关键的前期工作,为...

Global site tag (gtag.js) - Google Analytics