Effective Java プログラミング言語ガイド (2)

Effective Javaの続きです。今回の範囲は雑多な項目になります。C言語との違いや、その他プログラミング一般にも適用できそうな内容が中心となっています。


Effective Java プログラミング言語ガイド

Effective Java プログラミング言語ガイド
Joshua Bloch (著)
ジョシュア・ブロック (著)
柴田 芳樹 (著)
¥ 2,730 (税込)


C言語との違い

プログラミングの基礎といえばC言語という感があるくらい、C言語を勉強してからJavaに移ってくる人は多いような気がします。そういう人にとって「C言語ではあったけれども、Javaでは存在しないもの」を使いたいときにどうすればうまく、(さらにはC言語より安全に)使えるのかは重要です。

具体的には構造体・共用体なんかなのですが、クラスを使ってより安全なものの提供の仕方を解説しています。C言語enumを拡張した「タイプセーフenum」なんかはとても面白いですね。

メソッド使用の注意点

続いてはメソッド関連です。クラスを「安全でなくす」引数や返値というのがあります。内部のインスタンスのアドレスそのものの受け渡しをする場合なんかです。これを扱う方法「防衛的コピー」などが紹介されているのですが、これは意外と気づきにくい盲点ではないでしょうか。

ソフトウェア工学的内容

次はソフトウェア工学なんかの本ではおなじみの内容です。最適化を行うタイミングや、命名規則なんかですね。しっかり近年のソフトウェア工学の恩恵にあずかりましょうという話。

NEXT

最後はまたJavaっぽい話に戻って、例外・スレッド・直列化の話です。動きのイメージをしにくい部分ですね。