java.lang.*Error
程序员文章站
2022-05-23 18:52:11
...
public class *Error
当应用程序递归太深而发生堆栈溢出时,抛出该错误。
*Error是由于当前线程的栈满了 ,也就是函数调用层级过多导致,比如死循环,或者递归层次过深。
附上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.*Error // 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.*Error JVM栈溢出
-
归并排序栈溢出异常Exception in thread "main" java.lang.*Error
-
Exception in thread “main“ java.lang.*Error ——Spark栈溢出解决方案
-
java.lang.*Error 解决栈溢出
-
Spark SQL java.lang.*Error 异常处理
-
Hibernate获取数据时,报java.lang.*Error错误
-
hibernate多对一关联映射出现的java.lang.*Error问题
-
Caused by: java.lang.*Error: null 的解决办法
-
lombok引起的java.lang.*error问题
-
实体类@Entity中打印对象时,java.lang.*Error