错题
1、What is the result of compiling and executing the following fragment of code:
Boolean flag = false; if (flag = true) { System.out.println(“true”); } else { System.out.println(“false”); }
题中if括号内执行的是赋值语句,而不是判断语句!
解释:Boolean 修饰的是一种包装类型,Boolean类型初始值为false,并使用valueOf方法装箱,执行ifz中的赋值语句时,会拆箱让值变为true;
2、java异常图解
- 粉红色的是受检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.受检查的异常必须在编译时被捕捉处理,需要编译器检查。
- 绿色的异常是运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
- 而声明为Error的,则属于严重错误,如系统崩溃、虚拟机错误、动态链接失败等,这些错误无法恢复或者不可能捕捉,将导致应用程序中断,Error不需要捕捉。