提示:好多小伙伴反映,直接看到答案不太好,那我把答案的顏色設定為透明,答案位置還是在題目后面,需要滑鼠選中才能看見(操作如下圖),同時為了手機端的小伙伴(手機端也可以長按選中查看),我還會把所有答案放到文章最下面,希望給每天進步一點點的小伙伴更好的體驗,
補充:小伙伴又提建議了,說把樣例圖放成其它期的,這樣就不會暴露第一題的答案了,絕對的細節!
通知:由于日常Java練習題系列很受大家歡迎,CSDN文章也只能一周推送一次,再來又怕打擾大家,所以,我決定把【每天進步一點點系列】的文章放到我得WX公眾號上,大家需要的可以掃描關注,也可以VX搜【牛哄哄的柯南】,公眾號左下角有【每日十題】,點擊即可獲取當日的文章推送,讓我們一起進步,堅持!


每天進步一點點!
1、關于容器下面說法正確的是? ( )
正確答案:D
A 串列(List)和集合(Set)存放的元素都是可重復的,
B 串列(List)和集合(Set)存放的元素都是不可重復的,
C 映射(Map)中key是可以重復的,
E 映射(Map)中value是可以重復的,
題解:
1、串列(List)的元素是有 序、可重復 的; 集合(Set)的元素是無序、不可重復的,
2、 List底層是陣列存盤資料的,所以有序,可重復的 Set底層是HashMap,添加元素其實就是呼叫map的put()方法,添加的元素作為map的key,value是一個Object物件 而Hashmap底層是哈希表,陣列+鏈表的形式,根據key的hashcode()方法獲取到的值與它的高16位進行一個異或運算,得到哈希值,再通過計算定位出它在陣列中存放的位置,所以說是無序的,如果定位的位置有元素了,那就采用鏈地址法,就是比較hash值,如果有相同的新的值覆寫掉舊的值,如果沒有,jdk1.7是新元素放在頭節點,jdk1.8是放在尾節點,當然jdk1.8新增了紅黑樹,這里就不說了 總之,map的key不可重復,value是可以重復的
3、 list 存放的元素可重復, set 不可以, map 使用的是鍵值對存放,可一對多,key不重復,value可重復
2、應用程式的main方法中有以下陳述句,則輸出的結果( ) String s1=new String( ” xyz ” ); String s2=new String( ” xyz ” ); Boolean b1=s1.equals(s2); Boolean b2=(s1==s2); System .out.print(b1+ ” ” +b2);
正確答案:A
A true false
B false true
C true true
D false false
題解:
1、又錯了的人來回答一下: String a = “a”; String b = “a”; 這樣定義的a和b指向的是字串常量區變數,地址是一樣的,即用equals為true,用==也為true, 但是 String a =new String( “a”); String b = new String( “a”); 這樣是定義了兩個堆記憶體物件,只能equals,不能==
2、 String s1=new String( ” xyz ” ); //創建了String型別的內容為xyz的s1物件 String s2=new String( ” xyz ” ); //創建了String型別的內容為xyz的s2物件 Boolean b1=s1.equals(s2); //比較s1物件和s2物件的內容相等,回傳true, Boolean b2=(s1==s2); //比較s1和s2兩個物件的存盤地址是否相等,明顯兩者分別存盤在不同的地址,所以回傳:false, 故答案為:true false
3、當你編譯和運行下面的代碼時,會出現下面選項中的哪種情況? public class Pvf{
static boolean Paddy;
public static void main(String args){
System.out.println(Paddy);
}
}
正確答案:B
A 編譯時錯誤
B 編譯通過并輸出結果false
C 編譯通過并輸出結果true
D 編譯通過并輸出結果null
題解:
1、 成員變數有默認初始值,可以不用賦值,boolean的默認值為false, 區域變數必須賦值,否則編譯錯誤,
4、下列哪些陳述句關于記憶體回收的說明是正確的? ( )
正確答案:B
A 程式員必須創建一個執行緒來釋放記憶體
B 記憶體回收程式負責釋放無用記憶體
C 記憶體回收程式允許程式員直接釋放記憶體
D 記憶體回收程式可以在指定的時間釋放記憶體物件
題解:
1、選B, A、JVM一旦啟動,就會創建一個守護執行緒來監測是否需要有物件記憶體被釋放, C、無法直接釋放, D、不可以指定時間,System.gc(),只是提醒JVM可以進行一次Full GC,但是什么時候真正執行,還是不知道的,
2、 在空閑時間以不定時的方式動態回收無任何參考的物件占據的記憶體空間
3、 程式 程式員 因缺思聽,看混
5、關于 Socket 通信編程,以下描述錯誤的是:( )
正確答案:D
A 服務器端通過new ServerSocket()創建TCP連接物件
B 服務器端通過TCP連接物件呼叫accept()方法創建通信的Socket物件
C 客戶端通過new Socket()方法創建通信的Socket物件
D 客戶端通過new ServerSocket()創建TCP連接物件
題解:
1、Socket套接字 就是源Ip地址,目標IP地址,源埠號和目標埠號的組合 服務器端:ServerSocket提供的實體 ServerSocket server= new ServerSocket(埠號) 客戶端:Socket提供的實體 Socket soc=new Socket(ip地址,埠號)
6、JVM記憶體不包含如下哪個部分( )
正確答案:D
A Stacks
B PC暫存器
C Heap
D Heap Frame
題解:
1、JVM記憶體五大區域:
2、 PC暫存器即程式計數器
7、下面有關servlet service描述錯誤的是?
正確答案:B
A 不管是post還是get方法提交過來的連接,都會在service中處理
B doGet/doPost 則是在 javax.servlet.GenericServlet 中實作的
C service()是在javax.servlet.Servlet介面中定義的
D service判斷請求型別,決定是呼叫doGet還是doPost方法
題解:
1、 doget/dopost與Http協議有關,是在 javax.servlet.http.HttpServlet 中實作的
2、 GenericServlet 抽象類 給出了設計 servlet 的一些骨架,定義了 servlet 生命周期,還有一些得到名字、配置、初始化引數的方法,其設計的是和應用層協議無關的
8、下面哪些具體實作類可以用于存盤鍵,值對,并且方法呼叫提供了基本的多執行緒安全支持:( )
正確答案:AE
A java.util.ConcurrentHashMap
B java.util.Map
C java.util.TreeMap
D java.util.SortMap
E java.util.Hashtable
F java.util.HashMap
題解:
1、執行緒安全的類有hashtable concurrentHashMap synchronizedMap
2、 java.util.concurrent.ConcurrentHashMap 執行緒安全 java.util.Map 介面 java.util.TreeMap java.util.SortedMap 介面 java.util.Hashtable 執行緒安全 java.util.HashMap
3、 ConcurrentHashMap 鍵值對不可以為空,執行緒安全 java.util.Map是一個介面 java.util.TreeMap 鍵值對不可以為空,非執行緒安全 java.util.SortedMap 這是個介面并且擴展了Map介面,它確保條目按升序鍵維護, java.util.Hashtable 鍵值對不可以為空,執行緒安全 java.util.HashMap鍵值對可以為空,非執行緒安全
9、Consider the following code: Integer s=new Integer(9);
Integer t=new Integer(9);
Long u=new Long(9); Which test would return true?
正確答案:CDE
A (s==u)
B (s==t)
C (s.equals(t))
D (s.equals(9))
E (s.equals(new Integer(9))
題解:
1、 int和int之間,用==比較,肯定為true,基本資料型別沒有equals方法 int和Integer比較,Integer會自動拆箱,==和 equals都肯定為true int和new Integer比較,Integer會自動拆箱,呼叫intValue方法
2、 所以==和 equals都肯定為true Integer和Integer比較的時候,由于直接賦值的話會進行自動的裝箱,所以當值在-128
3、127中的時候,由于值快取在IntegerCache中,那么當賦值在這個區間的時候,不會創建新的Integer物件,而是直接從快取中獲取已經創建好的Integer物件,而當大于這個區間的時候,會直接new Integer, 當Integer和Integer進行==比較的時候,在-128
4、127區間的時候,為true,不在這個區間,則為false 當Integer和Integer進行equals比較的時候,由于Integer的equals方法進行了重寫,比較的是內容,所以為true Integer和new Integer : new Integer會創建物件,存盤在堆中,而Integer在-128
10、下面幾個關于Java里queue的說法哪些是正確的()?
正確答案:AC
A LinkedBlockingQueue是一個可選有界佇列,不允許null值
B PriorityQueue,LinkedBlockingQueue都是執行緒不安全的
C PriorityQueue是一個無界佇列,不允許null值,入隊和出隊的時間復雜度是O(log(n))
D PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原則
題解:
1、正確答案 AC 答案決議 A、LinkedBlockingQueue是一個基于節點鏈接的可選是否有界的阻塞佇列,不允許null值, B、LinkedBlockingQueue是一個執行緒安全的阻塞佇列,實作了先進先出等特性, C、PriorityQueue是一個佇列,不允許null值,入隊和出隊的時間復雜度是O(log(n)), D、PriorityQueue是不同于先進先出佇列的另一種佇列,每次從佇列中取出的是具有最高優先權的元素,ConcurrentLinkedQueue是一個基于鏈接節點的執行緒安全佇列,該佇列的元素遵循FIFO原則,
答案匯總:
1、正確答案:D
2、正確答案:A
3、正確答案:B
4、正確答案:B
5、正確答案:D
6、正確答案:D
7、正確答案:B
8、正確答案:AE
9、正確答案:CDE
10、正確答案:AC
以上部分題解來自牛客評論區,感謝評論區大佬的解釋,
每天進步一點點!
不進則退!
著作權宣告:
原創博主:牛哄哄的柯南
博主原文鏈接:https://keafmd.blog.csdn.net/
看完如果對你有幫助,感謝點擊下面的一鍵三連支持!
[哈哈][抱拳]


加油!
共同努力!
Keafmd
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/297129.html
標籤:java
