Java日常練習(xí)題,每天進步一點點(45)
承蒙各位厚愛,我們一起每天進步一點點!(鼠標(biāo)選中空白處查看答案)
1、下列說法哪個正確( )
正確答案: C
不需要定義類,就能創(chuàng)建對象
對象中必須有數(shù)據(jù)域和方法
數(shù)據(jù)域可以是基本類型變量,也可以是一個對象
數(shù)據(jù)域必須是基本類型變量
題解:
A.沒有模板,怎么可能創(chuàng)建對象,創(chuàng)建對象必須先要定義類,常識
B.對象中的數(shù)據(jù)域和方法取決于該對象的類,類里面有就有,沒有就沒有
D.數(shù)據(jù)域不一定是基本類型,也可以是引用類型
2、只有實現(xiàn)了()接口的類,其對象才能序列化。
正確答案: A
Serializable
Cloneable
Comparable
Writeable
題解:
A、Serializable接口是專門提供給類實現(xiàn)序列化用的。要實現(xiàn)序列化對象必須要實現(xiàn) Serializable 接口
B、可進行復(fù)制
C、比較器
D、hadoop中的接口
3、在 java 中 , 一個類()
正確答案: B
可以繼承多個類
可以實現(xiàn)多個接口
在一個程序中只能有一個子類
只能實現(xiàn)一個接口
題解:
Java單繼承,多實現(xiàn):一個類可以同時實現(xiàn)多個接口,但是只能繼承自一個類,但它可以被多個類繼承,也就是說一個類只有一個直接父類,但是可以有多個子類
4、
public class Test{ static int cnt = 6; static{ cnt += 9; } public static void main(String[] args){ System.out.println(“cnt =” + cnt); } static{ cnt /=3; }; }
cnt的值是
正確答案: A
cnt=5
cnt=2
cnt=3
cnt=6
題解:
看好下面的說法:
在JVM調(diào)用mian方法之前先用進行靜態(tài)內(nèi)容的初始化。順序為:父類的靜態(tài)變量, 父類的靜態(tài)代碼塊 ,子類的靜態(tài)變量,子類的靜態(tài)代碼塊。(錯誤的)
不存在先執(zhí)行靜態(tài)變量后執(zhí)行靜態(tài)初始化塊,它倆根據(jù)在代碼中的順序執(zhí)行
題目中都是靜態(tài)的,就都執(zhí)行了,從上到下。
正確的說法:
(1)父類靜態(tài)成員和靜態(tài)初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行。
(2)子類靜態(tài)成員和靜態(tài)初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行。
(3)父類實例成員和實例初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行。
(4)執(zhí)行父類構(gòu)造方法。
(5)子類實例成員和實例初始化塊,按在代碼中出現(xiàn)的順序依次執(zhí)行。
(6)執(zhí)行子類構(gòu)造方法。
拓展測試:
/** * Keafmd * * @ClassName: Static * @Description: 測試static * @author: 牛哄哄的柯南 * @date: 2021-07-29 17:24 */ public class StaticTest { static { cnt = 6; } static int cnt = 100; public static void main(String[] args) { System.out.println("cnt = " + cnt); // 50 //最后輸出是50,如果按照錯誤說法最后的輸出應(yīng)該是3 //按順序執(zhí)行就是cnt=6--->cnt=100---->cnt = 100/2 = 50. } static { cnt /= 2; } }
上面的代碼輸出結(jié)果為50,就很好的說明了,不存在先執(zhí)行靜態(tài)變量后執(zhí)行靜態(tài)初始化塊這一說。很多時候我們要動手去嘗試!??!感興趣的自己debug看下過程。
5、要求匹配以下16進制顏色值,正則表達(dá)式可以為: #ffbbad #Fc01DF #FFF #ffE
正確答案: B
/#([0-9a-f]{6}|[0-9a-fA-F]{3})/g
/#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g
/#([0-9a-fA-F]{3}|[0-9a-f]{6})/g
/#([0-9A-F]{3}|[0-9a-fA-F]{6})/g
題解:
首先正則表達(dá)式寫在兩個/之間,然后第一個為#表示字符串第一個為#,然后[0-9a-fA-F]表示范圍是數(shù)字和大小寫字母,之后{6}表示連續(xù)6個字符,之間還有一個|表示條件或;最后一個g,表示表明可以進行全局匹配,如果不寫g,那么只會完成一輪匹配(或者說只返回第一個匹配的),寫g,可以進行全局搜索。
6、下列語句哪一個是不正確的()
正確答案: D
Log4j支持按分鐘為間隔生成新的日志文件
Log4j是一個打印日志用的組件
Log4j支持按年為間隔生成新的日志文件
Log4j的日志打印級別可以在運行時重新設(shè)置
題解:
日志的級別之間的大小關(guān)系如右所示:ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF Log4j建議只使用四個級別,優(yōu)先級從高到低分別是 ERROR > WARN > INFO > DEBUG。 log4j在運行期間是不可以重新設(shè)置的
7、以下哪個不是Collection的子接口?
正確答案: D
List
Set
SortedSet
Map
題解:
Collection主要的子接口:
List:可以存放重復(fù)內(nèi)容
Set:不能存放重復(fù)內(nèi)容,所有重復(fù)的內(nèi)容靠hashCode()和equals()兩個方法區(qū)分
Queue:隊列接口
SortedSet:可以對集合中的數(shù)據(jù)進行排序
Map沒有繼承Collection接口,Map提供key到value的映射。一個Map中不能包含相同的key,每個key只能映射一個value。Map接口提供3種集合的視圖,Map的內(nèi)容可以被當(dāng)作一組key集合,一組value集合,或者一組key-value映射。
8、以下會產(chǎn)生信息丟失的類型轉(zhuǎn)換是( )
正確答案: B
float a=10
int a=(int)8846.0
byte a=10; int b=-a
double d=100
題解:
A: float a=10; 可以. 它可以自動把 int 的10 轉(zhuǎn)成 float.
但是寫成float a=10.0的話反而是把 double 轉(zhuǎn)成 float.,這樣會損失精度. 在 C/C++可以, 但在 java 是錯誤的.
最正確的寫法是 float=10.0f;
B: double變?yōu)閕nt損失了精度。
C:byte與int轉(zhuǎn)換時若是int直接賦值給byte在-128-127范圍內(nèi)就是正確的,超出范圍就需強制類型轉(zhuǎn)換,整型變量賦給byte時均需強制類型轉(zhuǎn)換(如int n=10,byte a=(int)n),不考慮范圍。
D:int轉(zhuǎn)double,向上轉(zhuǎn),沒問題
9、下列代碼執(zhí)行結(jié)果為()
public static void main(String args[]) throws InterruptedException { Thread t = new Thread(new Runnable() { public void run() { try { Thread.sleep(2000); } catch (InterruptedException e) { throw new RuntimeException(e); } System.out.print("2"); } }); t.start(); t.join(); System.out.print("1"); }
正確答案: A
21
12
可能為12,也可能為21
以上答案都不對
題解:
join()的作用是:“等待該線程終止”,這里需要理解的就是該線程是指的主線程等待子線程的終止。也就是在子線程調(diào)用了join()方法后面的代碼,只有等到子線程結(jié)束了才能執(zhí)行。
因為子線程的休眠時間太長,因此主線程很有可能在子線程之前結(jié)束也就是輸出結(jié)果是12,但是子線程用了join函數(shù),因此主線程必須等待子線程執(zhí)行完畢才結(jié)束因此輸出結(jié)果只能是21。
10、Java多線程有幾種實現(xiàn)方法?
正確答案: A B
繼承Thread類
實現(xiàn)Runnable接口
實現(xiàn)Thread接口
以上都不正確
題解:
1、繼承Thread類,Override它的run方法;
2、實現(xiàn)Runnable接口,實現(xiàn)run方法;
答案匯總:
1、正確答案: C
2、正確答案: A
3、正確答案: B
4、正確答案: A
5、正確答案: B
6、正確答案: D
7、正確答案: D
8、正確答案: B
9、正確答案: A
10、正確答案: A B
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java中比較器Comparator和Comparable的區(qū)別
這篇文章主要介紹了Java中比較器Comparator和Comparable的區(qū)別,我們在使用?Collections.sort()對鏈表進行排序時,常常需要根據(jù)不同情況自定義排序規(guī)則,今天我們來看看比較器之間的區(qū)別,需要的朋友可以參考下2023-08-08詳解idea文件右鍵創(chuàng)建New沒有Create New Servlet的解決辦法
這篇文章主要介紹了詳解idea文件右鍵創(chuàng)建New沒有Create New Servlet的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復(fù)Origin的BUG問題
這篇文章主要介紹了Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復(fù)Origin的BUG問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04通過spring注解開發(fā),簡單測試單例和多例區(qū)別
這篇文章主要介紹了通過spring注解開發(fā),簡單測試單例和多例區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08