`
jojo_java
  • 浏览: 96558 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java中栈溢出解决办法

    博客分类:
  • JAVA
阅读更多
由于java自动分配与拾取内存空间,我们无法用动态分配堆栈的大小,所以只能用以下方法来解决stack overflow的问题:
(1)别用深层递归,别传大参数;
(2)如果无法满足(1)的要求,那就将可能引发stack overflow的变量设为全局变量,这样它会被存在堆里(或其它地方)。
      Note:用new 初始的变量是会被房子栈里头的。
(3)如果(2)无法解决问题,就用如下命令:
         java -Xss2048k program_name
                         |
                 -Xss将thread stack size变为2m(个人认为windows默认的stack size为1m)
分享到:
评论
1 楼 snow8261 2014-08-12  
new的对象,满足逃逸分析的不会逃逸的对象才会放在栈里,其他都放在堆里。

相关推荐

    Java内存溢出解决办法

    如果递归深度过大或者每个线程创建了大量局部变量,可能会导致栈溢出。`java.lang.OutOfMemoryError: Stack overflow error`即表示这种情况。解决方案是优化代码,减少递归或调整栈的大小(通过-Xss设置)。 3. **...

    Java 内存溢出解决办法

    在Java中,内存分为几个区域:堆(Heap)、栈(Stack)、方法区(Method Area,Java 8后被元空间取代)以及程序计数器和本地方法栈。当"Java.lang.OutOfMemoryError: Java heap space"错误出现时,表示程序运行过程...

    Java内存溢出的详细解决方案

    Java内存溢出的详细解决方案 Java内存溢出是指Java虚拟机(JVM)中的内存使用超过了最大限制,导致程序崩溃或无法正常运行的错误。Java内存溢出主要有两种类型:PermGen space和Java heap space。 PermGen space ...

    解决Java程序内存溢出的办法

    在Java编程中,内存溢出(Out of Memory Error,简称OOM)是一个常见的问题,它发生在程序请求的内存超过了系统能够分配的最大额度。这种情况通常会导致程序崩溃,因此理解如何解决Java程序的内存溢出至关重要。以下...

    kettle内存溢出(Java heap space)以及解决方法.docx

    然而,在处理大量数据时,Kettle可能会遇到内存管理问题,导致Java堆空间溢出错误。这种错误通常表现为"Java heap space",意味着Java虚拟机(JVM)分配的内存不足以执行任务。 **Java堆空间的原理** Java堆是Java...

    理论:第十三章:堆溢出,栈溢出的出现场景以及解决方案.docx

    解决栈溢出的办法有两个: 1. 增大栈空间:可以通过 JVM 参数 -Xss 来调整栈的大小。 2. 改用动态分配,使用堆(heap)而不是栈(stack):可以使用堆来存储大数组或对象,避免栈溢出。 在实际开发中,我们可以...

    JAVA内存溢出

    JAVA中OutOfMemoryError(内存溢出)的三种情况及解决办法 Java中的OutOfMemoryError(内存溢出)是一种常见的错误,本文将详细介绍OutOfMemoryError的三种情况及其解决方法。 首先,我们需要了解JVM(Java虚拟机...

    Java内存溢出问题

    解决办法包括:合理设计对象结构,减少不必要的对象创建;使用对象池技术;及时释放不再使用的对象,避免内存泄露;调整JVM的堆大小设置,如-Xms和-Xmx参数。 2. 栈内存溢出: 栈内存用于存储方法调用时的局部变量...

    堆栈溢出的解决方法

    栈溢出是编程中的一种常见错误,了解栈溢出的解决方法对于编程者来说非常重要。通过使用栈把递归转换成非递归、使用static对象替代nonstatic局部对象、增大堆栈大小值等方法,可以有效地解决栈溢出的问题。

    Tomcat内存溢出的三种情况及解决办法分析

    内存中的一部分必须用于系统dll的加载,那么真正剩下的也许只有400M,现在关键的地方出现了:当你使用Java创建一个线程,在JVM的内存里也会创建一个Thread对象,但是同时也会在操作系统里创建一个真正的物理线程...

    tomcat内存溢出问题.doc

    对于这种情况,解决办法是调整JVM的启动参数来增大这个区域的大小。 在Tomcat中,我们可以通过修改`bin/catalina.sh`(对于Unix/Linux系统)或`bin/catalina.bat`(对于Windows系统)脚本来设置JVM的内存分配。我们...

    java300笔试题

    - 内存溢出:理解不同类型的内存溢出错误及其解决办法。 通过学习和解答这些题目,你可以系统地复习Java编程的核心概念,提升自己的编程能力和面试竞争力。这份资料不仅适用于面试准备,也是日常学习和工作中查漏...

    java内存分析.pdf

    通过上述知识点,可以看出文件内容中所包含的Java内存分析覆盖面相当广泛,不仅涵盖了JVM的基本组成和内存管理机制,还包括了类的加载和执行过程,以及潜在的内存溢出问题和解决办法。这些内容对于深入理解Java程序...

    java后端面试问题整理

    - 分析JVM内存溢出(OOM)问题的常见原因及解决办法。 5. **数据库相关** - 解释ACID事务的四个特性。 - 介绍索引的种类和它们对查询性能的影响。 - SQL优化技巧,如使用JOIN替代子查询,使用索引等。 - 解释...

    java heap s

    文档《解决Java_heap_space问题.doc》、《JAVA内存溢出解决方案.doc》、《java解压rar_高效解压.docx》、《java_lang_OutOfMemoryError Java heap space错误及处理办法(收集整理、转) - jxzxm1_2的专栏 - 博客频道 -...

    java面试题集合java面试题集合java面试题集合

    5. **JVM内存模型**:了解堆、栈、方法区、本地方法栈、程序计数器的结构,理解内存溢出(OOM)的原因和解决办法,分析垃圾回收机制(GC)和垃圾收集器。 6. **异常处理**:异常分类(检查性异常和运行时异常),...

    导出Excel的解决办法

    以上是关于“导出Excel的解决办法”的一些关键知识点,实际应用中还需要根据具体需求进行调整和优化。无论是编程还是使用现成工具,理解和掌握这些知识点都能帮助你更有效地完成Excel数据导出任务。

    java性能优化集锦

    内存泄漏是性能优化的重要部分,文件可能列举了常见的内存泄漏原因及解决办法,如: 1. **静态集合类引用导致的内存泄漏**:确保不再使用的对象从静态集合中移除。 2. **单例模式中的资源未正确关闭**:确保单例模式...

Global site tag (gtag.js) - Google Analytics