Javaエンジニア養成読本 - 3日目

第3章 例外の取り扱い

  • Error、RuntimeExcptionは非チェック例外、その他はチェック例外
  • Java SE 7からマルチキャッチ、try-with-resource
  • 例外再スローの場合は原因例外を設定すること
  • 例外処理時に例外が発生しうる場合には例外処理を記述すること

第4章 標準ライブラリの勘所

  • 文字列のリテラルインスタンスの違い
  • == と equals
  • リテラル文字列や名前付き定数のようなコンパイル時に解決可能な文字列同士の連結ならStringBuilderより+の方が高速
  • 「20億を超えるintの上限を超えることはないと思われるかもしれませんが、油断しているとあっさり超えます」、面白い。
  • アンボクシングは常にNullPointerExceptionが発生しうる危険性
  • nullをより安全に取り扱うために、Java SE 8 で 導入された Optionalクラスを使う
  • BigDecimalクラスの値比較はequalsではなくcompareToを使う
  • ArrayListとLinkedListの違いを意識
  • 空のリストを返したい場合はCollections.emptyList()を使うと無駄なインスタンス生成を抑えられるしコードの意図も明確になる
  • forEachは拡張forの置き換えではない

第5章 実践的Javaプログラミングのポイント

  • マルチスレッドはうかつに触るな
  • 「おまじない」、だめ、絶対