`

Java 内存溢出的可能性汇总

    博客分类:
  • Work
阅读更多

1 分配的内存太小, 请使用 JVM 参数设置更大的可用内存 
java -Xms512m -Xmx1024m 

2 递归循环了 
3 你把某个对象放到了一个Set/List/Map 里面,用完了有忘了释放 
在你的static 的对象/ 单例类也算 
里面找吧,所有涉及到set/list/map的都差一遍 

4 你把某些集合放到了 session/application 里面了, 
这样,如果session不过期,他们占用内存就不会释放,即使其他地方被null也没用 

5 你的算法有问题,你不应该把大的数据,比如文件和Blob/Clob之类的东西读入到内存进行处理,而应该用Stream的方式进行. 

6 虽然内存空闲总量足够,但GC之后,依然找不到任何一块满足当前请求的连续内存大小时。 
这个同样是涉及问题,也许你申请的太大了。也许那些不用的类,特备是对象缓冲区,应该减少对内存的占用,特备是NNN多的小对象!

分享到:
评论

相关推荐

    java面试笔试题大汇总

    Java是一种广泛使用的...这份"java面试笔试题大汇总.doc"文档很可能是对上述知识点的详细梳理和解析,对于准备Java面试的开发者来说是一份宝贵的资源。通过深入学习和理解这些内容,将有助于提升你在面试中的竞争力。

    125条常见的java面试笔试题大汇总.rar

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在软件开发领域,尤其是IT行业的招聘过程中,Java面试笔试题是评估候选人技能和知识的重要工具。"125条常见的Java面试...

    java数据类型汇总

    - **强制类型转换**:相反,从高级别类型转换为低级别类型需要使用强制类型转换,这可能会导致数据丢失(溢出)或精度下降。例如,`int i = 100; byte b = (byte) i;` - **包装类转换**:Java 提供了六个基本数据...

    java面试题汇总2017版

    面试中可能会涉及对象的生命周期、内存泄漏、内存溢出等问题。 IO流处理是Java操作文件和网络数据的基础,分为字节流和字符流,还有缓冲流、转换流、对象流等。NIO(New IO)框架的引入提供了更高效的数据传输方式...

    【精品干货】JAVA超全知识点总结——核心面试知识汇总(283页).pdf

    - **内存溢出(Memory Leak)**:如果程序中存在未释放的内存,导致系统可用内存持续减少,可能会引发内存溢出错误,需要通过优化代码和设置合理的内存分配策略来避免。 6. **性能调优** - **JVM参数调整**:通过...

    java面试笔试题大汇总 .rar

    这份"java面试笔试题大汇总"文档很可能是为了帮助求职者准备Java相关的技术面试和笔试而精心整理的资源。它涵盖了Java的基础知识、核心概念以及高级特性,旨在帮助应聘者全面了解和掌握Java编程。 首先,基础知识点...

    java面试笔试题汇总

    5. **内存管理**:Java的垃圾回收机制(Garbage Collection, GC)是其独特之处,理解新生代、老年代、内存溢出等问题,以及如何通过JVM参数调优,是面试中的常见问题。 6. **IO流**:掌握InputStream、OutputStream...

    Java后端技术面试基础汇总

    ### Java后端技术面试基础汇总 #### 一、Java基础知识 **1.1 Java基础** - **面向对象的特征:** - 继承:子类可以继承父类的属性和方法。 - 封装:将数据和行为封装在一起,提高数据安全性。 - 多态:同一...

    Java基础知识点汇总

    这可能是由于对象泄漏、内存溢出等问题引起的。 **解决方法:** 1. **使用JVM监控工具:** 如VisualVM、JConsole等工具来监控和分析内存使用情况。 2. **对象存活分析:** 通过分析对象的引用链,找出哪些对象导致...

    java与c++的区别汇总[收集].pdf

    5. **安全性**:Java有更严格的安全模型,防止诸如缓冲区溢出等问题,而C++在这方面较为宽松。 6. **模板和泛型**:C++的模板允许在编译时生成代码,而Java的泛型是在运行时进行类型检查。 【小结】 总的来说,Java...

    Java资料习题集汇总

    在编程过程中,可能会遇到各种异常情况,Java提供try-catch-finally语句块来捕获和处理异常,确保程序的稳定运行。 9. **方法定义与调用**: 如示例中的`area()`方法,它接收一个double类型的参数,返回圆的面积...

    265道JAVA面试题精华汇总.zip

    5. **JVM内存管理**:面试中可能会考察垃圾回收机制、内存模型(堆、栈、方法区、本地方法栈)、内存溢出错误、内存优化策略,以及如何通过JVisualVM等工具分析内存状况。 6. **异常处理**:面试题可能涉及异常分类...

    Java常见面试题目汇总

    - `Error`是系统级的错误,如内存溢出(`OutOfMemoryError`),通常程序无法恢复,应当记录并尽快终止。 3. 异常处理机制与事件机制: - 异常处理机制使得代码能够优雅地处理错误,通过将异常代码与正常代码分离...

    Java高级面试题及答案整理(2021年Java面试题答案大汇总)

    答案:首先是内存大小问题,基本上每一个内存区域我都会设置一个上限,来避免溢出问题,例如元空间。通常,堆空间我会设置成操作系统的2/3(这是想给其他进程和操作系统预留一些时间),超过8GB的堆优先选用G1。接...

    125条常见的java面试笔试题大汇总(5)

    例如,如果`i`和`i2`两个变量被分配了大量的内存空间,但在计算完成后并没有被适当释放(虽然这种情况更倾向于内存溢出而非泄漏),这可能会导致内存使用不当。正确的内存泄漏例子应该是对象不再使用但因为某些原因...

    java和.net面试题汇总

    8. Java内存操作异常可能涉及内存泄漏、栈溢出等。 9. TreeMap与HashMap的区别在于TreeMap是有序的,而HashMap无序;TreeMap基于红黑树,HashMap基于哈希表。 10. Statement与PreparedStatement的区别在于...

    JAVA面试-知识点汇总.pdf

    - **JVM内存模型**:堆、栈、方法区、本地方法栈等区域的作用和内存溢出问题。 - **多线程**:线程创建、同步机制(synchronized、Lock)、死锁、线程池等。 理解并掌握这些Java基础和高级概念对于开发者来说至关...

    Android避免内存溢出(Out of Memory)方法汇总

    7. **避免无限循环和递归**:这些情况可能导致栈溢出,也是内存溢出的一种形式。 通过以上方法,开发者可以有效地管理Android应用的内存,减少因内存溢出引发的应用崩溃,提高应用的稳定性和性能。在实际开发中,应...

    125条常见的java面试笔试题大汇总(1)

    在本文中,我们将深入探讨“125条常见的Java面试笔试题大汇总”中涵盖的关键知识点,帮助求职者更好地准备Java面试。 1. **基础语法**: - **变量与数据类型**:理解基本数据类型(如int、char、boolean)和引用...

Global site tag (gtag.js) - Google Analytics