とりあえず、暇つぶしに調べてたののURL関係だけ。
http://www.nextindex.net/java/classloader.html
http://www-128.ibm.com/developerworks/java/library/j-dclp1/index.html
http://www-128.ibm.com/developerworks/java/library/j-dclp2.html
http://www-128.ibm.com/developerworks/java/library/j-dclp3/index.html
http://www-128.ibm.com/developerworks/java/library/j-dclp4/index.html
http://www.nminoru.jp/~nminoru/java/class_unloading.html
・・・なに、このヒト。Javaバイトコードまで読んでる。吹っ飛びすぎ。
http://www.jajakarta.org/tomcat/tomcat5.0/ja/docs/tomcat-docs/class-loader-howto.html
http://www.sk-jp.com/mt/philosophical/archives/2005_04/05_224941.html
一応、
http://www.nextindex.net/java/classloader.html
に書いてあったのと同じコードをJDK1.6.0_01で試してみたら、同じ結果になった。
??何か、仕事先で適当に試したら、JDK5だと、CLASSPATHも、lib/extも、全部BootStrapLoader
が読んでないか?・・・みたいな結果になったんだけど。但し、全然違うコードだけど。やり方が悪かったのかな?そっちのコードだと、エントリポイントのクラスも、全部 class.getClassLoader()がnullなんだけど。う~~ん・・・あとで、変な結果になったソースコードも改めて検証してみよう。暇な時に、気が向いたら。
うお、いつのまにこんな機能が!?って、JDK5からか・・・。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/vm/class-data-sharing.html
あ、だからか・・・そういや、確かに、-verbose:class したときも、み~~んな
[Loaded ***** from shared objects file]
みたいに表示されてた。つまり、共有クラスキャッシュに入ってるら、BootstrapLoaderにみ~~~な読み込まれちゃうわけだ。
-Xshare:off
すれば、無効化できる。
[Loaded java.lang.Object from C:\Program Files\Java\jdk1.6.0_01\jre\lib\rt.jar]
・・・みたいな感じになる。ただ、その分実行速度がめちゃくちゃ遅くなった・・・。
コメント