问题叙述:
问题来源以及众多运行结果的来源:http://www.iteye.com/topic/1112387
下面代码的输出结果:
- private static void foo() {
- try {
- System.out.println("try");
- foo();
- } catch (Throwable e) {
- System.out.println("catch");
- foo();
- } finally {
- System.out.println("finally");
- foo();
- }
- }
- public static void main(String[] args) {
- foo();
- }
分析结果:
这里分析的结果是,肯定会输出try和finally,catch有可能输出,也有可能不输出,跟具体情况有关!
疑问之处:
1,catch的出现或者不出现到底是有什么引起的?
2,有的输出出现串行,就是try-catch-finally在一行输出的情况!解决的方法是使用print("Xxx\n")的方式输出结果
3,线程栈的使用情况,都