1. 程式人生 > >2018Java崗位面試和筆試彙總

2018Java崗位面試和筆試彙總

  這篇文章是用來記錄自己秋招遇到的比較難的筆試題和麵試題,有部分答案,不過可能不太對,如果錯誤,麻煩各位指出了。

1.tomcat 重啟後,第一次開啟頁面很慢,後面就漸漸快了,是什麼原因?

2.Double d=42.0; d.equals(42);是否為true?byte i=10;和byte i=200;是否正確?

d.equals(42)的值為false,byte i=10能通過編譯,byte i=200 不能通過編譯。

3.jdk提供的用於併發程式設計的同步器有哪些?

Semaphore,CyclicBarrier,CountDownLatch
A,Java 併發庫 的Semaphore 可以很輕鬆完成訊號量控制,Semaphore可以控制某個資源可被同時訪問的個數,通過 acquire() 獲取一個許可,如果沒有就等待,而 release() 釋放一個許可。
B,CyclicBarrier 主要的方法就是一個:await()。await() 方法沒被呼叫一次,計數便會減少1,並阻塞住當前執行緒。當計數減至0時,阻塞解除,所有在此 CyclicBarrier 上面阻塞的執行緒開始執行。
C,直譯過來就是倒計數(CountDown)門閂(Latch)。倒計數不用說,門閂的意思顧名思義就是阻止前進。在這裡就是指 CountDownLatch.await() 方法在倒計數為0之前會阻塞當前執行緒。
連結:

https://www.nowcoder.com/questionTerminal/6a670710f1a54892985575aa4dd67cdc
來源:牛客網