Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(64)
承蒙各位厚愛,我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、關(guān)于容器下面說法正確的是? ( )
正確答案:D
A 列表(List)和集合(Set)存放的元素都是可重復(fù)的。
B 列表(List)和集合(Set)存放的元素都是不可重復(fù)的。
C 映射(Map)中key是可以重復(fù)的。
E 映射(Map)中value是可以重復(fù)的。
題解:
1、列表(List)的元素是有 序、可重復(fù) 的; 集合(Set)的元素是無序、不可重復(fù)的。
2、 List底層是數(shù)組存儲(chǔ)數(shù)據(jù)的,所以有序,可重復(fù)的 Set底層是HashMap,添加元素其實(shí)就是調(diào)用map的put()方法,添加的元素作為map的key,value是一個(gè)Object對象 而Hashmap底層是哈希表,數(shù)組+鏈表的形式,根據(jù)key的hashcode()方法獲取到的值與它的高16位進(jìn)行一個(gè)異或運(yùn)算,得到哈希值,再通過計(jì)算定位出它在數(shù)組中存放的位置,所以說是無序的,如果定位的位置有元素了,那就采用鏈地址法,就是比較hash值,如果有相同的新的值覆蓋掉舊的值,如果沒有,jdk1.7是新元素放在頭節(jié)點(diǎn),jdk1.8是放在尾節(jié)點(diǎn),當(dāng)然jdk1.8新增了紅黑樹,這里就不說了 總之,map的key不可重復(fù),value是可以重復(fù)的
3、 list 存放的元素可重復(fù), set 不可以。 map 使用的是鍵值對存放,可一對多,key不重復(fù),value可重復(fù)
2、應(yīng)用程序的main方法中有以下語句,則輸出的結(jié)果( ) 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、又錯(cuò)了的人來回答一下: String a = “a”; String b = “a”; 這樣定義的a和b指向的是字符串常量區(qū)變量,地址是一樣的,即用equals為true,用==也為true。 但是 String a =new String( “a”); String b = new String( “a”); 這樣是定義了兩個(gè)堆內(nèi)存對象,只能equals,不能==
2、 String s1=new String( ” xyz ” ); //創(chuàng)建了String類型的內(nèi)容為xyz的s1對象 String s2=new String( ” xyz ” ); //創(chuàng)建了String類型的內(nèi)容為xyz的s2對象 Boolean b1=s1.equals(s2); //比較s1對象和s2對象的內(nèi)容相等,返回true。 Boolean b2=(s1==s2); //比較s1和s2兩個(gè)對象的存儲(chǔ)地址是否相等,明顯兩者分別存儲(chǔ)在不同的地址,所以返回:false。 故答案為:true false
3、當(dāng)你編譯和運(yùn)行下面的代碼時(shí),會(huì)出現(xiàn)下面選項(xiàng)中的哪種情況? public class Pvf{
static boolean Paddy; public static void main(String args){ System.out.println(Paddy); } }
正確答案:B
A 編譯時(shí)錯(cuò)誤
B 編譯通過并輸出結(jié)果false
C 編譯通過并輸出結(jié)果true
D 編譯通過并輸出結(jié)果null
題解:
1、 成員變量有默認(rèn)初始值,可以不用賦值,boolean的默認(rèn)值為false, 局部變量必須賦值。否則編譯錯(cuò)誤。
4、下列哪些語句關(guān)于內(nèi)存回收的說明是正確的? ( )
正確答案:B
A 程序員必須創(chuàng)建一個(gè)線程來釋放內(nèi)存
B 內(nèi)存回收程序負(fù)責(zé)釋放無用內(nèi)存
C 內(nèi)存回收程序允許程序員直接釋放內(nèi)存
D 內(nèi)存回收程序可以在指定的時(shí)間釋放內(nèi)存對象
題解:
1、選B。 A、JVM一旦啟動(dòng),就會(huì)創(chuàng)建一個(gè)守護(hù)線程來監(jiān)測是否需要有對象內(nèi)存被釋放。 C、無法直接釋放。 D、不可以指定時(shí)間,System.gc(),只是提醒JVM可以進(jìn)行一次Full GC,但是什么時(shí)候真正執(zhí)行,還是不知道的。
2、 在空閑時(shí)間以不定時(shí)的方式動(dòng)態(tài)回收無任何引用的對象占據(jù)的內(nèi)存空間
3、 程序 程序員 因缺思聽,看混
5、關(guān)于 Socket 通信編程,以下描述錯(cuò)誤的是:( )
正確答案:D
A 服務(wù)器端通過new ServerSocket()創(chuàng)建TCP連接對象
B 服務(wù)器端通過TCP連接對象調(diào)用accept()方法創(chuàng)建通信的Socket對象
C 客戶端通過new Socket()方法創(chuàng)建通信的Socket對象
D 客戶端通過new ServerSocket()創(chuàng)建TCP連接對象
題解:
1、Socket套接字 就是源Ip地址,目標(biāo)IP地址,源端口號(hào)和目標(biāo)端口號(hào)的組合 服務(wù)器端:ServerSocket提供的實(shí)例 ServerSocket server= new ServerSocket(端口號(hào)) 客戶端:Socket提供的實(shí)例 Socket soc=new Socket(ip地址,端口號(hào))
6、JVM內(nèi)存不包含如下哪個(gè)部分( )
正確答案:D
A Stacks
B PC寄存器
C Heap
D Heap Frame
題解:
1、JVM內(nèi)存五大區(qū)域:
2、 PC寄存器即程序計(jì)數(shù)器
7、下面有關(guān)servlet service描述錯(cuò)誤的是?
正確答案:B
A 不管是post還是get方法提交過來的連接,都會(huì)在service中處理
B doGet/doPost 則是在 javax.servlet.GenericServlet 中實(shí)現(xiàn)的
C service()是在javax.servlet.Servlet接口中定義的
D service判斷請求類型,決定是調(diào)用doGet還是doPost方法
題解:
1、 doget/dopost與Http協(xié)議有關(guān),是在 javax.servlet.http.HttpServlet 中實(shí)現(xiàn)的
2、 GenericServlet 抽象類 給出了設(shè)計(jì) servlet 的一些骨架,定義了 servlet 生命周期,還有一些得到名字、配置、初始化參數(shù)的方法,其設(shè)計(jì)的是和應(yīng)用層協(xié)議無關(guān)的
8、下面哪些具體實(shí)現(xiàn)類可以用于存儲(chǔ)鍵,值對,并且方法調(diào)用提供了基本的多線程安全支持:( )
正確答案: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是一個(gè)接口 java.util.TreeMap 鍵值對不可以為空,非線程安全 java.util.SortedMap 這是個(gè)接口并且擴(kuò)展了Map接口,它確保條目按升序鍵維護(hù)。 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?;緮?shù)據(jù)類型沒有equals方法 int和Integer比較,Integer會(huì)自動(dòng)拆箱,==和 equals都肯定為true int和new Integer比較,Integer會(huì)自動(dòng)拆箱,調(diào)用intValue方法
2、 所以 == 和 equals都肯定為true Integer和Integer比較的時(shí)候,由于直接賦值的話會(huì)進(jìn)行自動(dòng)的裝箱。所以當(dāng)值在-128
3、127中的時(shí)候,由于值緩存在IntegerCache中,那么當(dāng)賦值在這個(gè)區(qū)間的時(shí)候,不會(huì)創(chuàng)建新的Integer對象,而是直接從緩存中獲取已經(jīng)創(chuàng)建好的Integer對象。而當(dāng)大于這個(gè)區(qū)間的時(shí)候,會(huì)直接new Integer。 當(dāng)Integer和Integer進(jìn)行==比較的時(shí)候,在-128
4、127區(qū)間的時(shí)候,為true。不在這個(gè)區(qū)間,則為false 當(dāng)Integer和Integer進(jìn)行equals比較的時(shí)候,由于Integer的equals方法進(jìn)行了重寫,比較的是內(nèi)容,所以為true Integer和new Integer : new Integer會(huì)創(chuàng)建對象,存儲(chǔ)在堆中。而Integer在-128
10、下面幾個(gè)關(guān)于Java里queue的說法哪些是正確的()?
正確答案:AC
A LinkedBlockingQueue是一個(gè)可選有界隊(duì)列,不允許null值
B PriorityQueue,LinkedBlockingQueue都是線程不安全的
C PriorityQueue是一個(gè)無界隊(duì)列,不允許null值,入隊(duì)和出隊(duì)的時(shí)間復(fù)雜度是O(log(n))
D PriorityQueue,ConcurrentLinkedQueue都遵循FIFO原則
題解:
1、正確答案 AC 答案解析 A、LinkedBlockingQueue是一個(gè)基于節(jié)點(diǎn)鏈接的可選是否有界的阻塞隊(duì)列,不允許null值。 B、LinkedBlockingQueue是一個(gè)線程安全的阻塞隊(duì)列,實(shí)現(xiàn)了先進(jìn)先出等特性。 C、PriorityQueue是一個(gè)隊(duì)列,不允許null值,入隊(duì)和出隊(duì)的時(shí)間復(fù)雜度是O(log(n))。 D、PriorityQueue是不同于先進(jìn)先出隊(duì)列的另一種隊(duì)列。每次從隊(duì)列中取出的是具有最高優(yōu)先權(quán)的元素。ConcurrentLinkedQueue是一個(gè)基于鏈接節(jié)點(diǎn)的線程安全隊(duì)列,該隊(duì)列的元素遵循FIFO原則。
答案匯總:
1、正確答案:D
2、正確答案:A
3、正確答案:B
4、正確答案:B
5、正確答案:D
6、正確答案:D
7、正確答案:B
8、正確答案:AE
9、正確答案:CDE
10、正確答案:AC
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
解讀System.getProperty("ENM_HOME")中的值從哪獲取的
這篇文章主要介紹了解讀System.getProperty("ENM_HOME")中的值從哪獲取的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12Java的SpringMVC中控制器返回XML數(shù)據(jù)問題
這篇文章主要介紹了Java的SpringMVC中控制器返回XML數(shù)據(jù)問題,控制器是處理HTTP請求的組件,它們接收來自客戶端的請求,并將其轉(zhuǎn)換為適當(dāng)?shù)捻憫?yīng),這些響應(yīng)可以是動(dòng)態(tài)生成的?HTML?頁面,也可以是JSON或XML格式的數(shù)據(jù),需要的朋友可以參考下2023-07-07java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法
這篇文章主要為大家詳細(xì)介紹了java根據(jù)網(wǎng)絡(luò)地址保存圖片的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Java BigDecimal類的使用和注意事項(xiàng)
這篇文章主要講解Java中BigDecimal類的用法,并簡單介紹一些注意事項(xiàng),希望能給大家做一個(gè)參考。2016-06-06解決persistence.xml配置文件修改存放路徑的問題
這篇文章主要介紹了解決persistence.xml配置文件修改存放路徑的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02帶你重新認(rèn)識(shí)Java動(dòng)態(tài)代理
這篇文章主要為大家介紹了Java的動(dòng)態(tài)代理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-11-11簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別
這篇文章主要介紹了簡單了解JAVA SimpleDateFormat yyyy和YYYY的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03Java實(shí)現(xiàn)直接插入排序和折半插入排序算法示例
這篇文章主要介紹了Java實(shí)現(xiàn)直接插入排序和折半插入排序算法示例,文中對算法的思想和時(shí)間復(fù)雜度都有簡單的講解,需要的朋友可以參考下2016-04-04