PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 优秀优秀优秀,这是一个灭霸级的面试题。
作者回复: Java会建议你不要在final里return,也不要在final里修改return value。这会让代码的可读性降低。 最佳实践就是,finally就做一件事情就行,就是收尾。比如释放资源,输出监控日志之类的。
作者回复: 在有finally的情况下,return语句会先记住这个要retrun的值,然后执行finally语句块,然后再return之前记住的那个值。 PS,合理使用逗号,可以让句子更容易理解。
作者回复: 是的, catch里如果还有异常, 那就继续向外抛
作者回复: 这个应该是因为Intellij里设置的语法检查版本比较老,比如是Java 5的。可以通过下面的方式改。 File->Project Structure...,弹出的窗口里,选择在左边Project Settings里的Project,右边的Project Language Level里选择相应的JDK版本,比如选8,这个multi catch其实是Java 7 开始支持的。
作者回复: 会的,unchecked的意思是不强制要求你处理,但是如果你觉得你想处理,还是可以处理的。比如NullPointerException,任何一个使用引用的地方都可能会抛出这个异常,如果强制你处理,每行代码就都在try-catch里了。
作者回复: 论速度会更快,因为不需要产生异常实例