プログラミング言語Java (3)

Java本3回目です。今回はジェネリック、例外、文字列、スレッド、アノテーションと、Javaの中でも面白い部分です。特にジェネリックアノテーションは5.0からの新機能なので丁寧に見ていきます。とはいっても、今回の範囲はメソッドのリファレンス的な内容が多かったため、そういう部分はさらっと流します。


プログラミング言語Java 第4版 (The Java Series)

プログラミング言語Java 第4版 (The Java Series)
ケン・アーノルド (著)
ジェームズ ゴスリン (翻訳)
デビッド ホームズ (著)
柴田 芳樹 (著)
¥ 4,410 (税込)


ジェネリック

Java5.0の追加部分で最も大きい部分がこのジェネリック型の部分でしょう。ジェネリック型とは簡単にいえば、特殊な型を使って定義して一般的に作っておくことで、その特殊な型の部分を実際の具体的な型に置き換えて使えるようにしたものです。たとえば、

List<String>

なんて使い方ですね。ジェネリック型にすることによって、実際にはString用のListを作らないでも、String用のオブジェクトが作れるということです。これを使いこなせると、表現の幅がかなり広がるので、積極的に使っていきたいのですが、いかんせん難しい。。。

文字列。例外・スレッド

文字列には2バイト文字があったり、文字コードがあったりと、実際に作る上で結構面倒な部分が多くあります。JavaのString型では、かなりその面倒な部分をやってくれます。

Javaが比較的書きやすい理由としては、この例外がうまくできているためでしょう。適切に例外を投げることによって、読みやすく堅牢なコードが書けるようになります。

適切に並列動作ができるようになれば、プログラムはかなり早くなります。ただ、そのために難しいのが、同期やロック。Javaの場合は、多少は自動的にやってくれるため、多少楽にはなっています。とはいっても、やはり並列に動くものを作るのは難しいのですが。

アノテーション

アノテーション自体はプログラムなわけではなく、ドキュメンテーションコメントの一種です。プログラムがこれ自体をどうこうするというより、他のプログラムから使うためのコメントという感じです。なので、これ自体をあまりゴリゴリ書くってことはないのかな?

NEXT

次はリフレクション、ガーベッジコレクタ、パッケージ、ドキュメンテーションコメント、I/Oパッケージです。ページ数的には圧倒的にリフレクションが多いのですが、まあここはさらっと飛ばします。