クリプキクローネ日記帳

ある種の音楽と数学とランニングはミニマルなところが似ていると思う。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Javaの鉄則 [ピーター・ハガー(著)] (ピアソン・エデュケーション)

じゃばです。
じゃばは初めて勉強した言語なので思い入れがあります。
普段使ってないけどたまには昔の記憶を整理しようと思って借りてきました。
が、どうも内容が古いなーと思ってみてみたら2000年出版の本でした。
2000年の本ってこんなに古いんですね。
ソフトウェア業界こわい。

おもしろかったことをいくつか。



Objectで定義されているequals()メソッドは同一の参照(いわゆる"==")しかチェックしないらしい。
そんなへなちょこなequals()メソッドなら定義しなければいいのに。

自前のequals()メソッドではinstanceofよりgetClass()を使うべし。
equals()メソッドで親と子を同一と判定するなんてちょっとアクロバティックだからそもそもやりたくない。

使い終わったオブジェクトには積極的にnullを代入してガベージコレクションを少しでも早く発動させましょう、
っていうのは時代を感じる。
メモリを無駄にしないためらしいけど、今でも超重量系プログラムではそういう場合もあるんだろうか。
やたらとnullを入れるのは嫌なんだけど。

tryの中でreturnしてもfinallyにひっかかるからその値はreturnされない気を付けよう。
そもそもtryの中でreturnしようと思わないから気づかなかった。

通常ルートで例外を投げるなっていうのは正しい指摘だし、やりたくなる気持ちもわかる。

StringとStringBufferでそこまでパフォーマンス違うとは思わなかった。
あと、今までStringBuilderだと思って読んでたけどStringBufferだった。
StringBuilderは当時まだなかったのかな。

メンバ変数は自動的に初期化されるから0でいい場合は初期値を明示しない、っていうのも時代を感じる。
当時Java遅いバッシングが激しかったから少しでも速くしようという著者の心意気を感じる。

今回一番勉強になったのがsynchronized。
どのオブジェクトで同期を取ってるのか気を付けないと間違えそう。
こういうのはシングルスレッドで遊んでるだけだと一向に身につかないだろうな。

wait()とnotifyAll()も使うときにはちゃんと調べないと間違える。

volatileって最適化抑止だと思ってたけど、Javaではマルチスレッドのキーワードなのか。
キャッシュとメモリのズレをなくす、っていうのも最適化抑止の一部だからいいのか。
他の最適化についてはどうなんでしょう。
ググってもマルチスレッドの話題しか出てこず。

というか、こういう本についてブログを書くと初心者っぷりがバレバレで恥ずかしいですね。
  1. 2016/09/20(火) 23:31:01|
  2. | トラックバック:0
  3. | コメント:0
<<データサイエンティスト養成読本 - R活用編 (技術評論社) | ホーム | ディシプリンド・アジャイル・デリバリー [Scott W.Ambler / Mark Lines (著)] (翔泳社)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://myumbrella.blog42.fc2.com/tb.php/321-273bc97d
この記事にトラックバックする(FC2ブログユーザー)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。