1. 程式人生 > >java基礎問題鞏固(1)

java基礎問題鞏固(1)

大量 性能 PE 循環 垃圾 比較 通過 強制 ring

  1. 你對java垃圾回收了解嗎?什麽時候需要使用?

: 垃圾回收器的作用是查找和回收(清理)無用的對象,從而讓jvm更 有效的使用內存。但是運行因為垃圾回收本身會有開銷,過於頻繁的使用會導致性能下降。比如有些程序在短期內需要大量的內存,這時候有必要強制下達一條垃圾回收命令,以便於有更多可用的物理內存。垃圾回收的目的就是識別並且丟棄應用不再使用的對象來釋放和重用資源。

2.static理解什麽?什麽時候需要使用?

答:static是修飾詞,被static關鍵字修飾的方法/變量不需要依賴對象來進行訪問,也就是說只要類被加載了,就可以通過類名去進行訪問。當一個方法或變量需要初始化加載的時候,或是經常需要被調用的時候需要加上

static

3.多線程問題,當多個線程需要訪問多個資源時,怎樣才能保證不死鎖。

答:多線程中避免死鎖的方式是:指定一個獲取鎖的順序,使得所有的線程都是以同樣的順序進行獲取鎖和釋放鎖,這樣就能避免死鎖的情況。

4.字符串之間(str1str2)的拼接有幾種方式,並且區別是什麽?

:有兩種方式,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)