映画の影響で、物理法則を誤解する。
スラドから。いや映画を信じちゃダメだろう。といいつつ、自分にも経験が。
たしかダイハードだったと思うんだけど、主人公が最後に、敵が乗ったジェット機に穴をあけ、そこから燃料を滴らせ、離陸したところでライターで火をつけて、誘爆してドカンってのがあって、あれを見てジェット燃料ってやつは、きっとエチルエーテルみたいに、ものすごく沸点が低い、引火性の高い物質なんだろうと勘違いしていたことがある。実際は灯油と同程度の燃料だから、あんな芸当は不可能なんだけどね。
そういえばダイハード(Die Hard)といえば、最初は「派手に死ぬ」という意味だと思っていたなぁ。実際は「なかなか死なない」=>「しぶといやつ」という意味で、全然違うわけだけど。
「接続中」
リナザウは、通信カードで接続が完了すると「接続中」と表示される。で、良く「まだか、まだか」といらいらしてしまう。いいかげん覚えろって感じなんだけど、やっぱ変だよね。「接続中」だと接続相手とネゴシエーション中みたいじゃないか。「接続済」とか「オンライン中」とかにして欲しいな。
SoftReferenceでキャッシュ
SoftReferenceでキャッシュって、どう実装するのがベストなんだろう。あまり考える時間が無かったんで、HashMapのバリューをSoftReferenceにして、折りを見てReferenceQueue.poll()を呼んで、GCされたのを、HashMapから落とすようにしたんだけど、これだとMap.Entryとか、キーは、結構長いこと残り続けるよね。
WeakHashMapを見ると、EntryをWeakReferenceにしている。なるほど。これならGCでEntryが落ちるからキーもいっしょに参照が切れる。折りをみてpoll()でという戦略は、いっしょだった。
GCされるとSoftReference.clear()が呼ばれるみたいなので、それをトリガに、HashMapから落とすこともできるなと思ったけど、そんな余計な仕事をGCのスレッドにやらせたら、ただでさえ長いStop the worldの時間が余計にかかってしまうから、やっぱりpoll()するのが正解なんだろうな。





