標籤:物理 程式 ati 對象 節點 build 回收 載入 結合
- 你對java記憶體回收瞭解嗎?什麼時候需要使用?
答: 記憶體回收行程的作用是尋找和回收(清理)無用的對象,從而讓jvm更 有效使用記憶體。但是運行因為記憶體回收本身會有開銷,過於頻繁的使用會導致效能下降。比如有些程式在短期內需要大量的記憶體,這時候有必要強制下達一條記憶體回收命令,以便於有更多可用的實體記憶體。記憶體回收的目的就是識別並且丟棄應用不再使用的對象來釋放和重用資源。
2.static理解什嗎?什麼時候需要使用?
答:static是修飾詞,被static關鍵字修飾的方法/變數不需要依賴對象來進行訪問,也就是說只要類被載入了,就可以通過類名去進行訪問。當一個方法或變數需要初始化載入的時候,或是經常需要被調用的時候需要加上static。
3.多線程問題,當多個線程需要訪問多個資源時,怎樣才能保證不死結。
答:多線程中避免死結的方式是:指定一個擷取鎖的順序,使得所有的線程都是以同樣的順序進行擷取鎖和釋放鎖,這樣就能避免死結的情況。
4.字串之間(str1與str2)的拼接有幾種方式,並且區別是什嗎?
答:有兩種方式,str1+str2 直接使用+進行拼接,或是使用StringBuilder的方式
【StringBuilder sb= new StringBuilder();
sb.append(str1);
sb.append(str2);】 如果通過迴圈1000次數拼接測試 發現StringBuilder在拼接繁雜的情況下,其中的耗時比+進行拼接的方式要少。如果拼接的字串比較多則可以優先考記憶體時。結合耗時我們可以得出這樣的結論,在使用大量字串拼接的時候優先使用StringBuilder。
5.你對二叉樹瞭解嗎?
答:二叉樹的每個節點最多有兩個子樹,左右子樹是有順序的,即使只有一個子樹也要區分二叉樹。二叉樹的遍曆,從根節點出發,按照某種次序訪問二叉樹的所有節點。(前序 中序 後序遍曆)
6.變數A和B,需要交換值,但是沒第三個變數,怎麼實現?
答: A=A+B; B=A-B; A=A-B; 最後輸出 A B
java基礎問題鞏固(1)