随手笔记

阅读更多
1. HashTable 與 HashMap 區別 Hashtable 是通過節點的關鍵碼,確定節點的存儲位置,即給定節點的關鍵碼K,通過一定的函數關系H(散列函數),得到函數值K,將此值解釋為該節點的存儲地址. hashMap 與HashTable 很相似,但HashMap非同步,以null為關鍵碼. 2. 抽象類和接口 抽象類可以繼承實體,但實體類必須有明確的構造函數.構造器不能被繼承,因此不能重寫overriding,但可以被重載overloading (1) 構造器不能是native,final,static,synchronized. (2) 構造器不能有返回值. (3) 成員變量聲明的時候賦值,比構造函數還早. 接口可以繼承接口,抽象類可以實現接口,抽象類是否可以繼承實體,前提是實體類必須有明確的構造函數. 3. String 類是final類,不能被繼承.try{}里面有一個return語句,緊跟在try后面的finally{}里的code會被執行,并且在return前執行. 4. final,finally,finalize final:如果一個類被聲明為final,意味它不能派生子類,不能被繼承.變量或方法聲明為final,可以保證他們在使用中不被改變;被聲明為final的變量必須在聲明的時候給定初值,只能讀取不能改變.被聲明為final的方法只能使用,不能重載. fianally:處理異常時提供finally塊來執行任何清除工作.如果拋出一個異常,那么相匹配的catch子句被執行,然后控制進入finally. finalize: 方法名.java允許使用finalize方法在垃圾回收器將對象從內存中清除之前做必要的清除工作.它是在object類中定義的.子類覆蓋finalize方法以整理系統資源或執行其他清理工作. 5. Int 與 Integer Java提供兩種不同類型,引用類型,原始類型.Int是原始類型,Integer是封裝類型.引用類型與封裝類型有不同的特征和方法.包括 大小,速度,存儲結構,缺省值. 6. ArrayList 與 Vector ArrayList .Vector 都是使用數組的方式存儲數據.他們都允許直接按序號索引數據.但插入的元素要涉及數據元素的移動等內存操作.所以索引數據快而插入數據慢。Vector由于使用synchronized,性能上較ArrayList慢,而LinkList使用雙向鏈表存儲,所以插入速度較快. 7. yield sleep wait 區別 從OS角度講,OS會維護一個read queue,并且在某一時刻cpu只為read queue中位于隊列頭部的線程服務,但是當前正在被服務的線程可能覺得cpu服務質量不好,于是提前退出,這就是yield. 或者當前正在被服務的線程需要睡一會,醒來后繼續服務,這就是sleep.sleep是線程類的方法,導致此線程暫定執行指定時間,執行機會會給其他線程.但是監控狀態依然保持,到時候會自動釋放,調用sleep不會釋放對象鎖. wait 是object 類方法,對此對象調用wait方法,進入此對象的等待鎖定池,釋放對象鎖. 8. 數字簽名的使用 (1) jar cvf serialport.jar com javax serialport (2) keytool –genkey –keystore fang.keystore –alias Fang (3) jarsinger –keystore Fang.keystore serialport.jar Fang (4) keytool –export –keystore Fang.keystore –alias Fang -file fang.cer 9. heap 與 stack 棧是線性集合。添加和刪除元素在同一段完成.棧是按照后進先出的原則進行.堆是棧的組成元素. 10. 類的static 代碼段,可以看作是類的首次加載(被虛擬器加載)執行的代碼,而對于類的加載,首先要執行其基類的構造,在執行其本身的構造. 11. Math.floor(-4.7) 取其左邊相近的浮點數 Math.round(-4.7) 四舍五入,取其相近整數 Math.ceil(-4.7) 取其右邊相近浮點數 12. java異常的簡單原理及應用 當java違反語義規則時,JVM就將發生的錯誤表示為一個異常,違反語義包括2種情況(1) java內置語法檢查(2)Java允許這種擴展,并創建自己的異常. 13. 垃圾回收機制 代復制垃圾回收,標記垃圾回收,增量垃圾回收 14.Error 與 E xception Error: 系統級的錯誤和程序不必處理的異常. Exception:表示需要捕捉或需要進行處理的異常. 15.克隆(clone)的條件: (1) 對任何對象X,都有X.clone()!=X ,克隆對象與原對象不是同一個對象. (2) 任何對象X,都有X.clone().getClass==X.getClass();

你可能感兴趣的:(OS,JVM,工作)