Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(10)
承蒙各位厚愛,我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、在運(yùn)行時(shí),由java解釋器自動(dòng)引入,而不用import語句引入的包是()。
正確答案: A
java.lang
java.system
java.io
java.util
題解:
java.lang包是java語言包,是自動(dòng)導(dǎo)入的。
java.util包是java的工具包,需要手動(dòng)導(dǎo)入。
java.sql包,JDBC接口類,需要手動(dòng)導(dǎo)入。
java.io;各種輸入輸入流,需要手動(dòng)導(dǎo)入。
system是類(java.lang.sysytem)不是包,是屬于java.lang包下的
2、以下關(guān)于集合類ArrayList、LinkedList、HashMap描述錯(cuò)誤的是()
正確答案: C
HashMap實(shí)現(xiàn)Map接口,它允許任何類型的鍵和值對(duì)象,并允許將null用作鍵或值
ArrayList和LinkedList均實(shí)現(xiàn)了List接口
添加和刪除元素時(shí),ArrayList的表現(xiàn)更佳
ArrayList的訪問速度比LinkedList快
題解:
1.List 是一個(gè)有序集合,可以存放重復(fù)的數(shù)據(jù) (有序:存進(jìn)是什么順序,取出時(shí)還是什么順序)
(1).ArrayList 底層是數(shù)組適合查詢,不適合增刪元素。
(2).LiskedList 底層是雙向鏈表適合增刪元素,不適合查詢操作。
(3).Vector 底層和ArrayList相同,但是Vector是線程安全的,效率較低很少使用
2.Set 是一個(gè)無序集合,不允許放重復(fù)的數(shù)據(jù) (無序不可重復(fù),存進(jìn)和取出的順序不一樣)
(1).HashSet 底層是哈希表/散列表
(2).TreeSet 繼承sartedSet接口(無需不可重復(fù),但存進(jìn)去的元素可以按照元素的大小自動(dòng)排序)
3.Map 是一個(gè)無序集合,以鍵值對(duì)的方式存放數(shù)據(jù),鍵對(duì)象不允許重復(fù),值對(duì)象可以重復(fù)。
(1).HashMap實(shí)現(xiàn)不同步,線程不安全。 HashTable線程安全
(2).HashMap中的key-value都是存儲(chǔ)在Entry中的。
(3).HashMap可以存null鍵和null值,不保證元素的順序恒久不變,它的底層使用的是數(shù)組和鏈表,通過hashCode()方法和equals方法保證鍵的唯一性
3、列表(List)和集合(Set)下面說法正確的是? ( )
正確答案: A
Set中至多只能有一個(gè)空元素
List中至多只能有一個(gè)空元素
List和Set都可以包含重復(fù)元素的有序集合
List和Set都是有序集合
題解:
Set 不能有重復(fù)的元素,且是無序的,要有空值也就只能有一個(gè)。因?yàn)樗辉试S重復(fù)。 L ist 可以有重復(fù)元素,且是有序的,要有空值也可以有多個(gè),因?yàn)樗芍貜?fù)
Set無序,List有序,
4、以下程序的運(yùn)行結(jié)果是?
正確答案: A
foobar
barfoo
foobar或者barfoo都有可能
Bar
Foo
程序無法正常運(yùn)行
題解:
這道題是考線程的調(diào)用情況,線程的啟動(dòng)方式只能通過start這種方式啟動(dòng)才能真正的實(shí)現(xiàn)多線程的效果,如果是手動(dòng)調(diào)用run方法和普通方法調(diào)用沒有區(qū)別,所以這個(gè)還是按照順序執(zhí)行首先執(zhí)行run方法之后,執(zhí)行輸出語句所以最終得到結(jié)果foobar.
如果是調(diào)用start()后,線程會(huì)被放到等待隊(duì)列,等待CPU調(diào)度,并不一定要馬上開始執(zhí)行,只是將這個(gè)線程置于可動(dòng)行狀態(tài)。然后通過JVM,線程Thread會(huì)調(diào)用run()方法,執(zhí)行本線程的線程體。
1.start()方法來啟動(dòng)線程,真正實(shí)現(xiàn)了多線程運(yùn)行。這時(shí)無需等待run方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行下面的代碼;
2.run()方法當(dāng)作普通方法的方式調(diào)用。程序還是要順序執(zhí)行,要等待run方法體執(zhí)行完畢后,才可繼續(xù)執(zhí)行下面的代碼, 這樣就沒有達(dá)到寫線程的目的。
5、下面程序的輸出結(jié)果是什么。
public class A2{ public static void main(String[] args){ int[] a={2,4,6,8,3,6,9,12}; doSomething(a,0,a.length-1); for(int i=0;i<=a.length-1;i++) System.out.print(a[i]+" "); } private static void doSomething(int[] a,int start,int end){ if(start<end){ int p=core(a,start,end); doSomething(a,start,p-1); doSomething(a,p+1,end); } } private static int core(int[] a,int start,int end) { int x=a[end]; int i=start; for(int j=start;j<=end-1;j++){ if(a[j]>=x){ swap(a,i,j); i++;//交換了幾次 } }//把最大的放到最后 swap(a,i,end);//把最大的放到i的位置 return i; } private static void swap(int[] a,int i,int j) { int tmp=a[i]; a[i]=a[j]; a[j]=tmp; } }
正確答案: C
找到最大值
找到最小值
從大到小的排序
從小到大的排序
題解:
是快速排序的另一種實(shí)現(xiàn)
注釋誤導(dǎo),直接看core函數(shù)就會(huì)發(fā)現(xiàn)它是實(shí)現(xiàn)快速排序的一個(gè)階段 這里a[j]≥x對(duì)應(yīng)從大到小排序;若改為a[j]<=x則對(duì)應(yīng)從小到大排序
6、
public class Test { public int x; public static void main(String []args) { System. out. println("Value is" + x); } }
對(duì)于上面這段代碼,以下說法正確的是:
正確答案: C
程序會(huì)打出 “Value is 0”
程序會(huì)拋出 NullPointerException
非靜態(tài)變量不能夠被靜態(tài)方法引用
編譯器會(huì)拋出 "possible reference before assignment"的錯(cuò)誤
題解:
非靜態(tài)成員只能被類的實(shí)例化對(duì)象引用,因此這里在靜態(tài)方法中訪問x會(huì)造成編譯出錯(cuò)
7、從運(yùn)行層面上來看,從四個(gè)選項(xiàng)選出不同的一個(gè)。
正確答案: B
JAVA
Python
objectC
C#
題解:
A,C,D都是類C語言,B不是
Python是解釋執(zhí)行的,其他語言都需要先編譯
8、下面哪些標(biāo)識(shí)符是正確的?
正確答案: A B
MyWorld
parseXML
–value
&maybe
題解:
標(biāo)識(shí)符定義規(guī)則:
1.不能數(shù)字開頭
2.標(biāo)識(shí)符用$,_,字母,數(shù)字組成
3.不能用java關(guān)鍵字,保留字(關(guān)鍵字都是小寫的)
4.不能用true,false,null來定義標(biāo)識(shí)符
5.java大小寫敏感
6.沒有長(zhǎng)度限制
9、下列哪個(gè)是合法的 Java 標(biāo)識(shí)符?( )
正確答案: B C
Tree&Glasses
FirstJavaApplet
First_Applet
273.5
題解:
Java標(biāo)識(shí)符:
標(biāo)識(shí)符由26個(gè)英文字符大小寫(az,AZ)、數(shù)字(0~9)、下劃線(_)和美元符號(hào)($)組成;
不能以數(shù)字開頭,不能是關(guān)鍵字;
嚴(yán)格區(qū)分大小寫;
標(biāo)識(shí)符的可以為任意長(zhǎng)度;
10、以下說法中正確的有?
正確答案: A D
StringBuilder是 線程不安全的
Java類可以同時(shí)用 abstract和final聲明
HashMap中,使用 get(key)==null可以 判斷這個(gè)Hasmap是否包含這個(gè)key
volatile關(guān)鍵字不保證對(duì)變量操作的原子性
題解:
A.StringBuilder線程不安全,StringBuffer線程安全。
B.同時(shí)用 abstract和final就會(huì)自相矛盾。
C.Hashmap中的value可以之null,get(key)==null有兩種情況,一是key不存在,二是該key中存的是null,所以應(yīng)該使用map.containskey(key)返回的true/false來判斷是否存在這個(gè)key。
D.volatile關(guān)鍵字有兩個(gè)作用:
1.并發(fā)環(huán)境可見性:volatile修飾后的變量能夠保證該變量在線程間的可見性,線程進(jìn)行數(shù)據(jù)的讀寫操作時(shí)將繞開工作內(nèi)存(CPU緩存)而直接跟主內(nèi)存進(jìn)行數(shù)據(jù)交互,即線程進(jìn)行讀操作時(shí)直接從主內(nèi)存中讀取,寫操作時(shí)直接將修改后端變量刷新到主內(nèi)存中,這樣就能保證其他線程訪問到的數(shù)據(jù)是最新數(shù)據(jù)
2.并發(fā)環(huán)境有序性:通過對(duì)volatile變量采取內(nèi)存屏障(Memory barrier)的方式來防止編譯重排序和CPU指令重排序,具體方式是通過在操作volatile變量的指令前后加入內(nèi)存屏障,來實(shí)現(xiàn)happens-before關(guān)系,保證在多線程環(huán)境下的數(shù)據(jù)交互不會(huì)出現(xiàn)紊亂。
abstract修飾的類是抽象類,是可以繼承的,而final修飾的類表示不能再被繼承,故肯定不能共同使用。故B錯(cuò)。
HashMap中提供的get(key)獲取的是變量,無法判斷是否存在key。所以C是錯(cuò)的
volatile關(guān)鍵字是一種輕量級(jí)的同步機(jī)制,只保證數(shù)據(jù)的可見性,而不保證數(shù)據(jù)的原子性。故D對(duì)
答案匯總:
1、正確答案: A
2、正確答案: C
3、正確答案: A
4、正確答案: A
5、正確答案: C
6、正確答案: C
7、正確答案: B
8、正確答案: A B
9、正確答案: B C
10、正確答案: A D
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Mybatis-plus:${ew.sqlselect}用法說明
這篇文章主要介紹了Mybatis-plus:${ew.sqlselect}用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Java實(shí)現(xiàn)的并發(fā)任務(wù)處理實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)的并發(fā)任務(wù)處理方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了基于線程操作并發(fā)任務(wù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景
這篇文章主要給大家介紹了關(guān)于JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03JavaWeb搭建網(wǎng)上圖書商城畢業(yè)設(shè)計(jì)
這篇文章主要介紹了JavaWeb搭建網(wǎng)上圖書商城框架,特別適合正在為網(wǎng)上商城畢業(yè)設(shè)計(jì)煩惱的同學(xué),需要的朋友可以參考下2015-11-11Springboot?hibernate-validator?6.x快速校驗(yàn)示例代碼
這篇文章主要介紹了Springboot?hibernate-validator?6.x校驗(yàn),本文以6.2.1.Final版本為例解決了log4j版本的漏洞問題,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-12-12Java實(shí)現(xiàn)Fibonacci(斐波那契)取余的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)Fibonacci取余的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03