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

java.lang.StackOverflowError

 
阅读更多

 


public class StackOverflowError





extends VirtualMachineError

当应用程序递归太深而发生堆栈溢出时,抛出该错误。


StackOverflowError是由于当前线程的栈满了  ,也就是函数调用层级过多导致,比如死循环,或者递归层次过深。

 

 


附上thinking in java中的一段代码:p287页

 

在调用toString()方法时候,this发生类型转换,从InfiniteRecursion转化为String类型。这个过程中需要调用this.toString()方法。既然进入了递归调用,最终到处出错。

 

 

package com.thinking.string;

import java.util.ArrayList;
import java.util.List;

public class InfiniteRecursion {
	public String toString() {
		//An exception occurred: java.lang.StackOverflowError
//		return " InfiniteRecursion address: " + this + "\n";
		return " InfiniteRecursion address: " + super.toString() + "\n"; 
		 
	}
	
	public static void main(String[] args) {
		List<InfiniteRecursion> v = new ArrayList<InfiniteRecursion>();
		for (int i = 0; i < 10; i++) {
			v.add(new InfiniteRecursion());
		}
		System.out.println(v);
	}
}

 

 

参考资料:http://blog.sina.com.cn/s/blog_68f018570100vhcr.html

分享到:
评论

相关推荐

    如何解决java.lang.StackOverflowError

    解决java.lang.StackOverflowError

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space

    tomcat内存溢出解决办法,错误信息:java.lang.OutOfMemoryError:PermGen space 参考该文档可快速解决内存溢出的问题,服务器:tomcat

    java 异常总结

    java.lang.StackOverflowError 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。 java.lang.ThreadDeath 线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。 java.lang....

    java编程常见问题

    34.java.lang.StackOverflowError 堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。 35.java.lang.ThreadDeath 线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。 36....

    稳定性专题 | StackOverFlowError 常见原因及解决方法

    如果某个线程的线程栈空间被耗尽,没有足够资源分配给新创建的栈帧,就会抛出 java.lang.StackOverflowError 错误。 线程栈是如何运行的? 首先给出一个简单的程序调用代码示例,如下所示: public class...

    weblogic安装部署以及常见问题解决

    该文档对weblogic使用过程中,包括下载,安装,部署运营过程中出现的问题进行了描述和提供了解决方法,比如1. 包引入错误... 3 2. 乱码现象... 3 3. mime-typeType配置问题....7. java.lang.StackOverflowError. 5 等等

    JsonConfigUtil

    去除死循环,解决StackOverflowError错误

    sonar-json-plugin:SonarQube JSON分析器

    SonarQube JSON分析器免责...故障排除如果JSON文件包含一些高度嵌套的对象(超过一百个嵌套级别),则您可能会遇到如下StackOverflowError : Exception in thread "main" java.lang.StackOverflowErrorat com.sonar.ss

    Java常见内存溢出异常分析

     栈溢出抛出java.lang.StackOverflowError错误,出现此种情况是因为方法运行的时候栈的深度超过了虚拟机容许的大深度所致。  出现这种情况,一般情况下是程序错误所致的,比如写了一个死递归,有可能造成此种...

    学习JVM之java内存区域与异常

    关于JVM内存区域的知识对于初学者来说其实是很重要的,了解Java内存分配的原理,这对于以后JAVA的学习会有更深刻的理解。下面来看看详细介绍。

    函数调用的基本原理

    编程中有时会遇到一个系统异常java.lang.StackOverflowError,栈溢出错误,要理解这个错误,我们需要理解函数调用的实现机制,本文就谈谈它的基本原理 ...

    JVM内存结构详解

    文章目录一、你了解JVM内存结构吗在这之前需要知道JVM内存结构图——JDK1.81.1、程序计数器1.2、虚拟机栈(JVM Stack)1.1.1、java.lang.StackOverflowError问题1.3、本地方法栈1.4、元空间(MetaSpace)1.4.1、...

    dbay-apns-for-java:适用于APNS的高性能Java客户端(Apple Push Notification Service)

    例如,有时会引发异常:java.lang.StackOverflowError。 一段时间后,该设备将无法接收通知。 然后,我使用JSTACK和JMAP查找发生了什么事情,即DEADLOCK,这导致Java-APNS不再起作用。 我必须重新启动服务才能恢复...

Global site tag (gtag.js) - Google Analytics