我的評論
re: 深入Java 虛擬機 之讀書筆記 refactoring 重構 2005-12-13 00:21
類裝載器
1。運行時包:同一個類裝載器裝載的、屬于同一個包的、多個類型的集合。要訪問protect/friend訪問時一定是同一個運行時包才行
java API的類文件是最可信的,可以通過禁止引入某個包中的類,
2。Class 要通過四次檢查來:第一次載入時,第二、三次連接中,動態連接過程中解析符號引用時
第一次:文件完整性與文件的格式、版本號
第二次:每個部分屬性與它定義的是否相符?如返回類型與參數一致性,還有final是否被子類化,常量池的引用是否指向合法的reference
第三次:是校驗字節碼,即操作碼,操作對象是否合法獲值與棧中數值是正確的值與類型。停機問題:不能用一個程序來判斷輸入的值是否會產生停機
第四次:確定某個類的引用或方法的存在和合法性,它是動態連編的一部分
如果避免同時引入了舊包和新包,但調用者根本不知道?
查一下java編譯是根據時間還是所有的重新編譯?
Java系統安全(類裝載器體系結構、class文件檢查器以及java中內置的安全特性如限制對本地方法的調用)
1. 類型安全的引用轉換
2. 結構化的內存訪問
3. 數據邊界檢查
4. 空引用
引用散列方法:大量的輸入得到很小的輸入,即它們是一對一的,輸出和jar文件放在一起,如果jar文件有改變就會發現輸出不對。
私鑰與公鑰的問題:
1. 有公鑰的情況下得到私鑰是很難的
2. 私鑰加密的都可以用公鑰解開
用私鑰加密后的散列輸入與包含散列輸出的jar傳到A手中,A得到后用公鑰解開,再用這個輸入計算一下,與jar中的輸出應該是一樣的
Keytool 產生公鑰與私鑰
Jarsigner 簽名
keytool -genkey -alias friend -keypass friend4life -validity 10000 -keystore ijvmkeys
將生成ivjmkeys的keystore文件,有效期為10000天
keytool -genkey -alias stranger -keypass friend4life -validity 10000 -keystore ijvmkeys
jarsigner –keystore ijvmkeys –storepass ijvm2ed –keypass friend4life friend.jar friend
jarsigner –keystore ijvmkeys –storepass ijvm2ed –keypass friend4life friend.jar stranger
Java虛擬機體系結構
子系統、內存區、數據類型、指令
1。運行時包:同一個類裝載器裝載的、屬于同一個包的、多個類型的集合。要訪問protect/friend訪問時一定是同一個運行時包才行
java API的類文件是最可信的,可以通過禁止引入某個包中的類,
2。Class 要通過四次檢查來:第一次載入時,第二、三次連接中,動態連接過程中解析符號引用時
第一次:文件完整性與文件的格式、版本號
第二次:每個部分屬性與它定義的是否相符?如返回類型與參數一致性,還有final是否被子類化,常量池的引用是否指向合法的reference
第三次:是校驗字節碼,即操作碼,操作對象是否合法獲值與棧中數值是正確的值與類型。停機問題:不能用一個程序來判斷輸入的值是否會產生停機
第四次:確定某個類的引用或方法的存在和合法性,它是動態連編的一部分
如果避免同時引入了舊包和新包,但調用者根本不知道?
查一下java編譯是根據時間還是所有的重新編譯?
Java系統安全(類裝載器體系結構、class文件檢查器以及java中內置的安全特性如限制對本地方法的調用)
1. 類型安全的引用轉換
2. 結構化的內存訪問
3. 數據邊界檢查
4. 空引用
引用散列方法:大量的輸入得到很小的輸入,即它們是一對一的,輸出和jar文件放在一起,如果jar文件有改變就會發現輸出不對。
私鑰與公鑰的問題:
1. 有公鑰的情況下得到私鑰是很難的
2. 私鑰加密的都可以用公鑰解開
用私鑰加密后的散列輸入與包含散列輸出的jar傳到A手中,A得到后用公鑰解開,再用這個輸入計算一下,與jar中的輸出應該是一樣的
Keytool 產生公鑰與私鑰
Jarsigner 簽名
keytool -genkey -alias friend -keypass friend4life -validity 10000 -keystore ijvmkeys
將生成ivjmkeys的keystore文件,有效期為10000天
keytool -genkey -alias stranger -keypass friend4life -validity 10000 -keystore ijvmkeys
jarsigner –keystore ijvmkeys –storepass ijvm2ed –keypass friend4life friend.jar friend
jarsigner –keystore ijvmkeys –storepass ijvm2ed –keypass friend4life friend.jar stranger
Java虛擬機體系結構
子系統、內存區、數據類型、指令