1. 程式人生 > >Java面試題(五)線程及集合補充

Java面試題(五)線程及集合補充

每一個 場景 nds 試題 個數 安全 應用程序 -- 服務器

1,一個進程就是一個應用程序。一個線程就是一個進程中運行的最小單元。 一個進程可以包括多線程。 餐館(進程)。
主線程。
服務員(線程)
服務員(線程)
服務員(線程)
服務員(線程) 加塞,讓步,守護,睡覺,打斷,設置優先級。。 2,線程的生命周期?
新建,就緒,運行,阻塞,死亡
3,線程創建有幾種方式?
答:三種。extends Thread,implements Runnable,線程池。 繼承是否要滿足一種關系?is-a關系?
子類 is a 父類。 4,不同線程創建對應的start方法。
a繼承Thread,再直接start.

b實現Runnable時一定在類中編寫了run方法.簡單說就是定義線程要執行的任務
將這個任務放在Thread的構造中。再start

場景:服務器,遊戲。
5,java中wait和sleep方法的不同?
答:等待時wait會釋放鎖,而sleep一直持有鎖。
Wait通常被用於線程間交互,sleep通常被用於暫停執行 6,對象.run是否會啟動線程?
線程的start方法,才可以啟動線程,讓線程就緒狀態。 7,synchronized關鍵字。
用來給對象和方法或者代碼塊加鎖,同一時刻最多只有一個線程執行這段代碼。 8,final。三不。 9,StringBuilder,StringBuffer[synchronized],區別?
StringBuilder效率更高,線程不安全。 10,HashMap就是一個哈希表或者散列表,
散列表其實就是一個數組。數組中的每一個元素是一個單鏈表
--可以理解索引就是key計算的哈希值 11,對象的hashcode相同,equals相同嗎?不一定。
equals相同,hashcode肯定相同。 12,用過哪些數組?3 普通定義數組,ArrayList,(HashMap的數組結構)

Java面試題(五)線程及集合補充