好程序員Java培訓分享Java中級面試題

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

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

好程序員Java培訓分享Java中級面試題

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

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

  3.如何權衡是使用無序的數組還是有序的數組?

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

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

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

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

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


分享到:


相關文章: