- 数组遍历,使用catch 异常的方式终止循环,不要这样作


误觉得第一种方法会提高性能,这种想法错误有三:api
- 异常机制的设计初衷是为了用于不正常情形,因此不多有JVM 设计会对其进行优化
- 代码放入 try...catch 里面反而阻止了 现代jvm的优化动做
- 标准模式不会致使冗余的检查,有些现代jvm 实现会把他优化掉
实际上,现代 JVM 异常模式比标准模式慢得多数组
- 基于异常的循环模式,模糊了代码意图、下降了性能、不能保证正常工做
- 出现了不相关的异常,可能隐藏bug ,增长调试复杂度(好比,try 内调用别的数组,致使越界,这个异常不但被吃掉、数组遍历也会提早结束)
异常仅仅使用在异常状况下,他们永远不该该用于正常的控制流并发
- 设计良好的api 不该该强迫他的客户端,使用异常来控制正常的流程
请不要这样作,老老实实的使用 hasNext()判断jvm


状态测试方法 函数
- 若是一个类具备一个“状态相关”的方法,既只有在特定的条件下才能够被调用的方法,那么这个类每每也应该有一个单独的“状态测试”方法,既只是是否能够调用第一个方法。例如:Iterator类的hasNext就是一个“状态测试”方法
可被识别的返回值 性能
- 返回值。咱们经常使用函数的返回值来标志成功或者失败,甚至是失败的缘由
状态测试方法 语义明确,相同条件下优先使用测试
- 但在牵涉到外部未被同步的并发调用时,请使用可被识别的返回值