好程式設計師Java培訓分享Java中級面試題合集

好程式設計師發表於2020-10-09

   好程式設計師Java 培訓分享 Java 中級面試題合集: 1 . 彈出式選擇選單 (Choice) 和列表 (List) 有什麼區別

   Choice 是以一種緊湊的形式展示的,需要下拉才能看到所有的選項。 Choice 中一次只能選中一個選項。 List 同時可以有多個元素可見,支援選中一個或者多個元素。

   2 . 如何確保 N 個執行緒可以訪問 N 個資源同時又不導致死鎖?

   使用多執行緒的時候,一種非常簡單的避免死鎖的方式就是:指定獲取鎖的順序,並強制執行緒按照指定的順序獲取鎖。因此,如果所有的執行緒都是以同樣的順序加鎖和釋放鎖,就不會出現死鎖了。

   3 . 如何權衡是使用無序的陣列還是有序的陣列?

   有序陣列最大的好處在於查詢的時間複雜度是O(log n) ,而無序陣列是 O(n) 。有序陣列的缺點是插入操作的時間複雜度是 O(n) ,因為值大的元素需要往後移動來給新元素騰位置。相反,無序陣列的插入時間複雜度是常量 O(1)

   4 . 序列 (serial) 收集器和吞吐量 (throughput) 收集器的區別是什麼?

   吞吐量收集器使用並行版本的新生代垃圾收集器,它用於中等規模和大規模資料的應用程式。而序列收集器對大多數的小應用( 在現代處理器上需要大概 100M 左右的記憶體 ) 就足夠了。

   5 . 彈出式選擇選單 (Choice) 和列表 (List) 有什麼區別

   Choice 是以一種緊湊的形式展示的,需要下拉才能看到所有的選項。 Choice 中一次只能選中一個選項。 List 同時可以有多個元素可見,支援選中一個或者多個元素。

   6 . 資料庫連線池是什麼意思?

   像開啟關閉資料庫連線這種和資料庫的互動可能是很費時的,尤其是當客戶端數量增加的時候,會消耗大量的資源,成本是非常高的。可以在應用伺服器啟動的時候建立很多個資料庫連線並維護在一個池中。連線請求由池中的連線提供。在連線使用完畢以後,把連線歸還到池中,以用於滿足將來更多的請求。

   7 .doGet() 方法和 doPost() 方法有什麼區別?

   doGet GET 方法會把名值對追加在請求的 URL 後面。因為 URL 對字元數目有限制,進而限制了用在客戶端請求的引數值的數目。並且請求中的引數值是可見的,因此,敏感資訊不能用這種方式傳遞。

   doPOST POST 方法透過把請求引數值放在請求體中來克服 GET 方法的限制,因此,可以傳送的引數的數目是沒有限制的。最後,透過 POST 請求傳遞的敏感資訊對外部客戶端是不可見的。

   8 .HTTP 響應的結構是怎麼樣的?

   HTTP 響應由三個部分組成:

   狀態碼(Status Code) :描述了響應的狀態。可以用來檢查是否成功的完成了請求。請求失敗的情況下,狀態碼可用來找出失敗的原因。如果 Servlet 沒有返回狀態碼,預設會返回成功的狀態碼 HttpServletResponse.SC_OK

   HTTP 頭部 (HTTP Header) :它們包含了更多關於響應的資訊。比如:頭部可以指定認為響應過期的過期日期,或者是指定用來給使用者安全的傳輸實體內容的編碼格式。如何在 Serlet 中檢索 HTTP 的頭部看這裡。

   主體(Body) :它包含了響應的內容。它可以包含 HTML 程式碼,圖片,等等。主體是由傳輸在 HTTP 訊息中緊跟在頭部後面的資料位元組組成的。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2725898/,如需轉載,請註明出處,否則將追究法律責任。

相關文章