[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 11838] Re: 「アジャイル ソフトウェア開発の奥義 」を読む会第5回 議事 録 ドラフト



村山です.

>  ・ユーザ定義クラスローダがアンロードされると消える(?)
>   ★最近のJava実装で、クラスをアンロードする実装は?

実装まではなんとも言えませんが,仕様については以下の箇所ですね.

http://java.sun.com/docs/books/vmspec/2nd-edition/html/Concepts.doc.html#32202
--------------
2.17.8 Unloading of Classes and Interfaces
A class or interface may be unloaded if and only if 
its class loader is unreachable. 

The bootstrap class loader is always reachable; 
as a result, system classes may never be unloaded.
--------------
クラス又はインターフェースは,そのクラスローダーが到達可能で無くなった時にのみ
アンロードされる可能性がある.ブートストラップ クラスローダーは常に到達可能
であるので,システムクラスは決してアンロードされない.
--------------

"reachable"(到達可能)というのはGCの専門用語で,参照を辿ってマーキングル
ート(これも専門用語)より直接又は間接に到達できることを意味します.
reachable/unreachableが,GCにおけるオブジェクトの生死の『定義』です.

#ところでよくみると最後は"may"を「〜しても良い」の意味で使っているような
#気がする.仕様書では"must not"の方がいいんじゃないかなあ?