$shibayu36->blog;

クラスター株式会社のソフトウェアエンジニアです。エンジニアリングや読書などについて書いています。

パーフェクトJavaを読んだ

最近アルゴリズムの勉強でJavaを使っていて、いい機会だしどうせならJavaの言語の詳細な機能や考え方などを知りたいと思っていた。Javaをやっている人に聞いてみると「パーフェクトJava」が良いということなので読んでみた。

おすすめされたとおり非常に良かった。Java8に対応していて、Java8ならどう書くかを知ることが出来たし、クラスやインターフェースの構文の細かな詳細、コレクションの使い方や内部実装、ラムダ式の使い方や考え方、さらにはそれぞれの機能の内部まで細かく眺めることが出来た。Javaはこれまでの歴史からインターネット上には古いコードが無限にあるので、こういう本が一冊リファレンスとしてあるのはありがたい。

この本の中で個人的には以下の章が特に面白かった。これまでの経験から基本的な構文はすんなり理解できるので、ちょっと込み入ったものを面白いと感じたようだ。

  • 5章 クラス
    • とにかくクラスの構文がここまで幅広いのかということが分かった。内部クラスがどう扱われるのかなどが面白そう。
  • 8章 ラムダ式とストリーム
    • 単なるラムダ式の使い方だけでなく、関数型インターフェースがJavaでどのように導入されたかなどのことも知ることが出来た。
  • 15章 ジェネリック
    • ジェネリック型はよく使いたくなるので、どう使うのかがパッとわかったのが良かった
  • 18章 リフレクション
    • 型自体の情報を取り扱う方法を知れた。メタプログラミング的なことをしているコードとかを読むことも多いと思うので、参考になった。これでnanobenchのコードを読める。
  • 19章 アノテーション
    • Javaでよく使われているアノテーションの内部について知ることができた。かなり色んな所に適用できると感じた。

これでとりあえずJavaという言語自体をざっくり学ぶことが出来た。あとはJVMの扱いとか、JVMの内部などを知りたいのだけど、この本には載っていなかった。JVMについて知れるおすすめの資料はどれだろうか...