日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java面试常考系列四

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java面试常考系列四 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?java面試常考系列四

題目一

大O符號(big-O notation)的作用是什么有哪些使用方法?

O符號描述了當數據結構里面的元素增加的時候,算法的規模或者是性能在最壞的場景下有多么好。
O符號也可用來描述其他的行為,比如:內存消耗。因為集合類實際上是數據結構,一般使用大O符號基于時間內存和性能來選擇最好的實現。大O符號可以對大量數據的性能給出一個很好的說明。

題目二

有序數組和無序數組的區別是什么

1、有序數組最大的好處在于查找的時間復雜度是O(log n),而無序數組是O(n)。

2、有序數組的缺點是插入操作的時間復雜度是O(n),因為值大的元素需要往后移動來給新元素騰位置。相反,無序數組的插入時間復雜度是常量O(1)。

?

題目三

Java集合類框架的最佳實踐有哪些?

實踐一

根據應用的需要正確選擇要使用集合的類型對性能非常重要,所以,如果提前知道元素的大小是固定的,我們就會使Array,而不ArrayList

實踐二

對于那些允許指定初始容量的集合。如果能估計出存儲的元素的數目,就可以提前設置初始容量,以此來避免重新計算hash值或者是擴容。

實踐三

為了類型安全,可讀性和健壯性的原因總是要使用泛型。同時,使用泛型還可以避免運行時的ClassCastException。

實踐四

使用JDK提供的不變類(immutable class)作為Map的鍵可以避免為我們自己的類實現hashCode()和equals()方法。

實踐五

編程的時候接口優于實現。

實踐六

底層的集合實際上是空的情況下,返回長度是0的集合或者是數組,不要返回null。?

題目四

Enumeration接口和Iterator接口的區別有哪些?

1.速度

Enumeration速度是Iterator的2倍

2.內存

Enumeration比Iterator占用更少的內存。

3.安全

Enumeration安全性遠遠低于Iterator,因為當集合里面的對象正在被Iterator遍歷的時候,其他線程無法修改對象。

4.可操作

Enumeration不允許調用者刪除底層集合里面的元素,Iterator可以。

題目五

HashSet和TreeSet有什么區別?

區別一

底層存儲的數據結構不同HashSet底層用的是HashMap哈希表結構存儲,而TreeSet底層用的是TreeMap樹結構存儲

區別二

有序性不同。HashSet是無序的,而TreeSet是有序的。

區別三

存儲時保證數據唯一性依據不同HashSet是通過復寫hashCode()方法和equals()方法來保證數據唯一性的,而HashSet通過Compareable接口的compareTo()方法來保證數據唯一性

區別四

時間復雜度不同。HashSet的add()、remove()和contains()方法的時間復雜度是0(1),TreeSet的時間復雜度是0(logn)。

?

題目六

Java中垃圾回收有什么目的?垃圾回收的時機是什么

目的

識別并且丟棄應用不再使用的對象來釋放和重用資源。

時機

1.程序員可以手動調用gc但是Java語言規范并不保證GC一定會執行。

2.當應用程序空閑時,即沒有應用線程在運行時,GC會被調用。

3.Java堆內存不足時,GC會被調用

?

題目七

System.gc()和Runtime.gc()的作用是什么

這兩個方法用來提示JVM要進行垃圾回收。但是,立即開始還是延遲進行垃圾回收是取決于JVM的。GC本身是會周期性的自動運行的,由JVM決定運行的時機,現在的版本有多種更智能的模式可以選擇,還會根據運行的機器自動去做選擇

?

題目八

finalize()方法什么時候被調用?析構函數(finalization)的目的是什么?

在釋放對象占用的內存之前,垃圾收集器會調用對象的finalize()方法。

目的是回收某些對象,清理內存,一般建議在該方法中釋放對象持有的資源。

?

題目九

如果對象的引用被置為null,占用內存將在何時被回收

在下一個垃圾回收周期,這個對象將是可被回收的。

題目十

Java堆的結構是什么樣子的?什么是堆中的永久代(Perm Gen space)?

JVM的堆是運行時數據區,所有類的實例和數組都是在堆上分配內存。它在JVM啟動的時候被創建。對象所占的堆內存是由自動內存管理系統也就是垃圾收集器回收。

堆內存是由存活和死亡的對象組成的。存活的對象是應用可以訪問的,不會被垃圾回收。死亡的對象是應用不可訪問尚且還沒有被垃圾收集器回收掉的對象一直到垃圾收集器把這些對象回收掉之前,會一直占據堆內存空間。


總結

以上是生活随笔為你收集整理的java面试常考系列四的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。