BAT最多見的5個Java面試題,趕忙收藏起來

進程和線程的區別是什麼?

進程是執行着的應用程序,而線程是進程內部的一個執行序列。一個進程能夠有多個線程。線程又叫作輕量級進程。spa

線程的劃分小於進程,線程隸屬於某個進程。 進程是程序的一種動態形式,是CPU、內存等資源佔用的基本單位,而線程是不能佔有這些資源的。 進程之間相互獨立,通訊比較困難,而線程之間共享一塊內存區域,通訊比較方便。 進程在執行的過程當中,包含比較固定的入口,執行順序,出口,而線程的這些過程會被應用程序所控制線程

進程和線程的區別是什麼?

進程是執行着的應用程序,而線程是進程內部的一個執行序列。一個進程能夠有多個線程。線程又叫作輕量級進程。對象

線程的劃分小於進程,線程隸屬於某個進程。 進程是程序的一種動態形式,是CPU、內存等資源佔用的基本單位,而線程是不能佔有這些資源的。 進程之間相互獨立,通訊比較困難,而線程之間共享一塊內存區域,通訊比較方便。 進程在執行的過程當中,包含比較固定的入口,執行順序,出口,而線程的這些過程會被應用程序所控制進程

什麼是死鎖(deadlock)?

所謂死鎖是指多個進 程因競爭資源而形成的一種僵局(互相等待),若無外力做用,這些進程都將沒法向前推動。死鎖產生的4個必要條件:內存

  • 互斥條件:進程要求對所分配的資源(如打印機)進行排他性控制,即在一段時間內某 資源僅爲一個進程所佔有。此時如有其餘進程請求該資源,則請求進程只能等待。
  • 不剝奪條件:進程所得到的資源在未使用完畢以前,不能被其餘進程強行奪走,即只能 由得到該資源的進程本身來釋放(只能是主動釋放)。
  • 請求和保持條件:進程已經保持了至少一個資源,但又提出了新的資源請求,而該資源 已被其餘進程佔有,此時請求進程被阻塞,但對本身已得到的資源保持不放。
  • 循環等待條件:存在一種進程資源的循環等待鏈,鏈中每個進程已得到的資源同時被 鏈中下一個進程所請求。

Java中垃圾回收有什麼目的?何時進行垃圾回收?

垃圾回收是在內存中存在沒有引用的對象或超過做用域的對象時進行。資源

垃圾回收的目的是識別而且丟棄應用再也不使用的對象來釋放和重用資源。作用域

JVM的永久代中會發生垃圾回收麼?

垃圾回收不會發生在永久代,若是永久代滿了或者是超過了臨界值,會觸發徹底垃圾回收(Full GC)。若是你仔細查看垃圾收集器的輸出信息,就會發現永久代也是被回收的。這就是爲何正確的永久代大小對避免Full GC是很是重要的緣由。請參考下Java8:從永久代到元數據區垃圾回收

(注:Java8中已經移除了永久代,新加了一個叫作元數據區的native內存區)循環

 

愛惜貞操的小編給你們推薦咱們公衆號,會不按期更新Java相關技術文章引用

掃一掃關注我,麼麼噠

相關文章
相關標籤/搜索