當前位置:編程學習大全網 - 源碼破解 - java編程程序員技術面試常見面試?

java編程程序員技術面試常見面試?

隨著互聯網的不斷發展,java開發成為了眾多開發工程師使用的主流編程開發語言。今天,java課程培訓機構就壹起來了解壹下,在java程序員面試過程中,有哪些比較常見的技術面試問題需要我們了解。

1、什麽是線程?

線程是操作系統能夠進行運算調度的小單位,它被包含在進程之中,是進程中的實際運作單位。程序員可以通過它進行多處理器編程,妳可以使用多線程對運算密集型任務提速。比如,如果壹個線程完成壹個任務要100毫秒,那麽用十個線程完成改任務只需10毫秒。

2、線程和進程有什麽區別?

線程是進程的子集,壹個進程可以有很多線程,每條線程並行執行不同的任務。不同的進程使用不同的內存空間,而所有的線程***享壹片相同的內存空間。每個線程都擁有單獨的棧內存用來存儲本地數據。

3、如何在Java中實現線程?

兩種方式:java.lang.Thread類的實例就是壹個線程但是它需要調用java.lang.Runnable接口來執行,由於線程類本身就是調用的Runnable接口所以妳可以繼承java.lang.Thread類或者直接調用Runnable接口來重寫run()方法實現線程。

4、有哪些不同的線程生命周期?

當我們在Java程序中新建壹個線程時,它的狀態是New。當我們調用線程的start()方法時,狀態被改變為Runnable。線程調度器會為Runnable線程池中的線程分配CPU時間並且講它們的狀態改變為Running。其他的線程狀態還有Waiting,Blocked和Dead。

5、妳對線程優先級的理解是什麽?

每壹個線程都是有優先級的,壹般來說,高優先級的線程在運行時會具有優先權,但這依賴於線程調度的實現,這個實現是和操作系統相關的(OSdependent)。我們可以定義線程的優先級,但是這並不能保證高優先級的線程會在低優先級的線程前執行。線程優先級是壹個int變量(從1-10),1代表低優先級,10代表高優先級。

6、什麽是死鎖(Deadlock)?如何分析和避免死鎖?

死鎖是指兩個以上的線程永遠阻塞的情況,這種情況產生至少需要兩個以上的線程和兩個以上的資源。

分析死鎖,我們需要查看Java應用程序的線程轉儲。我們需要找出那些狀態為BLOCKED的線程和他們等待的資源。每個資源都有壹個唯壹的id,用這個id我們可以找出哪些線程已經擁有了它的對象鎖。

  • 上一篇:最後壹天用英語怎麽說
  • 下一篇:如何玩轉QQ玫瑰小鎮
  • copyright 2024編程學習大全網