初始化引发的"StackOverflowError" 异常
来源:互联网 发布:注册中文域名的好处 编辑:程序博客网 时间:2024/05/18 02:12
读者先来看看下面两段代码执行结果有什么不同?
片段一:
public Test() {
System.out.println("start");
System.out.println((new Integer(10)).toString());
Test t = new Test(); //第5行
System.out.println("end");
excute("Why I am right ?"); //第7行
}
public void excute(String msg) {
System.out.println(msg);
}
public static void main(String[] args) {
new Test();
}
}
片段二: 将第5行, 即 "Test t = new Test();" 注释掉.
运行结果:
片段一的结果为:
start
10
start
10
...
Exception in thread "main" java.lang.StackOverflowError
片段二的结果为:
start
10
end
Why I am right ?
为什么呢?
因为对象的创建入口是 构造函数, 构造函数会递规地"初始化"构造函数中声明的对象, 所以出现了其递规地调用自己的情况,, 直到耗尽stack.
细心的读者可能注意到第7行能真确地执行, 为什么呢, 留给读者思考了...希望这篇文章能给初学者有所帮助.
- 初始化引发的"StackOverflowError" 异常
- stackoverflowerror的异常处理
- spark中updateStateByKey引发StackOverflowError的解决
- “初始化“AxShockwaveFlashObjects.AxShockwaveFlash”时引发了异常。
- SqlDataReader引发的异常
- 关于VS.NET中窗体设计器初始化控件引发的设计时异常
- System.Transactions.Diagnostics.DiagnosticTrace 的类型初始值设定项引发异常。配置系统未能初始化
- System.Data.OracleClient.OracleConnection的类型初始化值设定项引发异常
- 异常:java.lang.StackOverflowError
- StackOverflowError异常处理
- 详细分析罕见的ClassCircularityError异常导致的StackOverflowError
- java的StackOverflowError和java.lang.NullPointerException异常的原因
- WinForm设计时异常】关于VS.NET中窗体设计器初始化控件引发的设计时异常
- 日积月累:使用EditText的TextChangedListener时StackOverflowError异常
- 中文输入引发的异常
- AndroidStdio-图片格式引发的异常
- 引发的异常:“System.FormatException"
- Jsoup引发的异常java异常
- QT在wince下的跟踪调试
- Java语言深入:新生代JAVA程序员的思想
- LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework(ADOEF)-ccBoy版
- IList(T)转换DataSet
- 手动杀毒
- 初始化引发的"StackOverflowError" 异常
- 转一个获取MSN口令的代码
- 在当前按钮位置弹出窗体的代码。自动计算弹出方位。
- 多线程,多显示场景图形设计:一种新的过程模型
- 我为什么要进国企——HP大中华区总裁孙振耀退休感言 (每次阅读都有新体会,推荐)
- 开发框架:Spring XML配置十二个最佳实践
- 性能分析工具
- 判断语句的直白性
- 什么造就好的代码?