亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求知,關于在非自動內存管理情況下怎么做單例模式?

求知,關于在非自動內存管理情況下怎么做單例模式?

撒科打諢 2019-11-12 20:10:53
非自動內存管理情況下怎么做單例模式
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

java應用環境中不同的class分別由不同的ClassLoader負責加載。
一個jvm中默認的classloader有Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader,分別各司其職
Bootstrap ClassLoader負責加載java基礎類,主要是 %JRE_HOME/lib/ 目錄下的rt.jar、resources.jar、charsets.jar和class等;
Extension ClassLoader負責加載java擴展類,主要是 %JRE_HOME/lib/ext 目錄下的jar和class;
App ClassLoader負責加載當前java應用的classpath中的所有類。
其中Bootstrap ClassLoader是JVM級別的,由C++撰寫;Extension ClassLoader、App ClassLoader都是java類,都繼承自URLClassLoader超類。
Bootstrap ClassLoader由JVM啟動,然后初始化sun.misc.Launcher ,sun.misc.Launcher初始化Extension ClassLoader、App ClassLoader。
Bootstrap ClassLoader、Extension ClassLoader、App ClassLoader三者的關系如下:
Bootstrap ClassLoader是Extension ClassLoader的parent,Extension ClassLoader是App ClassLoader的parent。
但是這并不是繼承關系,只是語義上的定義,基本上,每一個ClassLoader實現,都有一個Parent ClassLoader。
可以通過ClassLoader的getParent方法得到當前ClassLoader的parent。Bootstrap ClassLoader比較特殊,因為它不是java class所以Extension ClassLoader的getParent方法返回的是NULL。

查看完整回答
反對 回復 2019-11-16
  • 3 回答
  • 0 關注
  • 744 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號