国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

《java深度歷險》讀書筆記(一)

2019-11-18 15:03:50
字體:
供稿:網(wǎng)友

最近開始看

王森先生的《java深度歷險》,從我一借到這本書就愛不釋手,書里的內(nèi)容非常吸引人。可以說這本書有助于我們對java程序運行過程有更深的理解。所以我將記錄一些書中的重要結(jié)論,供大家參考,也作為自己的筆記。


 


 



第一章:

我們的機(jī)器里面至少有兩套jre,一套在%JAVA_HOME%/jre,一套在%HOME%/PRogram Files/Java/jre1.x.x,那么當(dāng)我們在命令行輸入java xxx的時候會按照下面的邏輯來尋找適合的jre來執(zhí)行程序:

1.       當(dāng)前目錄

2.       父目錄下的jre子目錄

3.       查詢注冊表里面的jre

所以我們在配置環(huán)境變量的時候一定要注重。


 


 



第二章:

構(gòu)造類的時候可以動態(tài)地載入內(nèi)存,這樣可以從一定程度上提高效率,所有類的載入都需要有ClassLoader。

顯式的動態(tài)載入類有兩種方法:一種是Class.forName(),一種是ClassLoader.loadClass(),它們得到的都是Class對象,也就是相應(yīng)類的元數(shù)據(jù),然后調(diào)用newInstance()方法就可以構(gòu)造這個類的對象了。這兩種方法的原理都是有一個ClassLoader來載入類。我們可以直接使用默認(rèn)的CLassLoader來載入類,也可以實現(xiàn)自己的ClassLoader(URLClassLoader就是一個例子)來載入。

而書中介紹的重點是默認(rèn)的CLassLoader載入類的原理。JVM有三個ClassLoader,分別是Bootstrap Loader(這個轉(zhuǎn)載器是C++寫的,直接與JVM打交道),ExtClassLoader,AppClassLoader。默認(rèn)情況下先請求AppClassLoader來搜索class文件,AppClassLoader再向其parent類ExtClassClassLoader請求,ExtClassClassLoader再請求其parent“類”Bootstrap Loader搜索。假如父裝載器在其搜索路徑里找不到class文件就再由子裝載器搜索,假如一直到AppClassLoader找不到就會拋出NoClassDefFoundError。這就是ClassLoader Hierarchy,簡而言之就是所有轉(zhuǎn)載請求一直發(fā)送到Bootstrap Loader,然后找不到才由子裝載器裝載。

下面介紹3個轉(zhuǎn)載器的搜索路徑:

Bootstrap Loader:System.getProperty(“sun.boot.class.path”);得到,默認(rèn)是jre/classes。修改的方法是執(zhí)行程序的時候使用java -Dsun.boot.class.path=yourPath XXX

ExtClassLoader:System.getProperty(“java.ext.dirs”):得到,默認(rèn)是jre/lib/ext。修改的方法是執(zhí)行程序的時候使用java -Djava.ext.dirs=yourPath XXX

AppClassLoader:System.getProperty(“java.class.path”);得到,默認(rèn)就是環(huán)境變量中的CLASSPATH。修改方法一個是修改環(huán)境變量,一個執(zhí)行程序的時候使用java –classpath yourPath XXX

了解了這些以后我們就可以對類的裝載有一定了解,以后放置第三方j(luò)ar包的時候就能清楚放在什么目錄最合適。當(dāng)然書里也說了JDBC驅(qū)動和JNDI的類裝載涉及ContexClassLoader,它是以上原理不一樣的,書里也沒有介紹。

第三章:

通過一個創(chuàng)建Word文檔的例子,介紹了JNI技術(shù)。

由于java程序都是在jvm基礎(chǔ)上執(zhí)行的,所以有很多與操作系統(tǒng)底層聯(lián)系緊密的功能都難以實現(xiàn)。我們就可以用native要害字修飾一個本地方法,而這個方法是由其他語言來實現(xiàn)。這樣我們可以調(diào)用windows的dll和Unix/linux的so文件來和操作系統(tǒng)底層交互。

                                to be continued...

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 绿春县| 曲水县| 杭锦后旗| 靖西县| 阿坝县| 赣州市| 纳雍县| 嘉义县| 安图县| 农安县| 固镇县| 女性| 临洮县| 张家界市| 资源县| 梧州市| 花莲县| 建湖县| 平远县| 延寿县| 柘城县| 阿克苏市| 西华县| 方城县| 安岳县| 唐河县| 滨海县| 丹凤县| 岳西县| 濮阳市| 黄山市| 额尔古纳市| 贡觉县| 梧州市| 枣强县| 乐平市| 昭平县| 威海市| 岱山县| 泽州县| 申扎县|