java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(1)
承蒙各位厚愛,希望各位每天都能進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、HashSet子類依靠()方法區(qū)分重復(fù)元素。
正確答案: C
toString(),equals()
clone(),equals()
hashCode(),equals()
getClass(),clone()
題解:
HashSet內(nèi)部使用Map保存數(shù)據(jù),即將HashSet的數(shù)據(jù)作為Map的key值保存,這也是HashSet中元素不能重復(fù)的原因。而Map中保存key值前,會(huì)去判斷當(dāng)前Map中是否含有該key對(duì)象,內(nèi)部是先通過key的hashCode,確定有相同的hashCode之后,再通過equals方法判斷是否相同。
2、下列哪個(gè)類的聲明是正確的?
正確答案: D
abstract final class HI{}
abstract private move(){}
protected private number;
public abstract class Car{}
題解:
A選項(xiàng),final是最終類,不能被繼承;abstrct類是抽象類,只能被繼承,兩者沖突。
B選項(xiàng),private修飾符定義的屬性及方法不能被子類實(shí)現(xiàn),而抽象類的子類必須實(shí)現(xiàn)所有的抽象方法。兩者沖突。
C選項(xiàng),修飾符重復(fù),而且沒有定義數(shù)據(jù)類型。
D選項(xiàng),正確。
3、下列關(guān)于包(package)的描述,正確的是()
正確答案: D
包(package)是Java中描述操作系統(tǒng)對(duì)多個(gè)源代碼文件組織的一種方式。
import語句將所對(duì)應(yīng)的Java源文件拷貝到此處執(zhí)行。
包(package)是Eclipse組織Java項(xiàng)目特有的一種方式。
定義在同一個(gè)包(package)內(nèi)的類可以不經(jīng)過import而直接相互使用。
題解:
A、為了更好地組織類,Java提供了包機(jī)制。包是類的容器,用于分隔類名空間。如果沒有指定包名,所有的示例都屬于一個(gè)默認(rèn)的無名包。Java中的包一般均包含相關(guān)的類,java是跨平臺(tái)的,所以java中的包和操作系統(tǒng)沒有任何關(guān)系,java的包是用來組織文件的一種虛擬文件系統(tǒng)。A錯(cuò)
B、import語句并沒有將對(duì)應(yīng)的java源文件拷貝到此處僅僅是引入,告訴編譯器有使用外部文件,編譯的時(shí)候要去讀取這個(gè)外部文件。B錯(cuò)
C、Java提供的包機(jī)制與IDE沒有關(guān)系。C錯(cuò)
D、定義在同一個(gè)包(package)內(nèi)的類可以不經(jīng)過import而直接相互使用。
4、以下代碼執(zhí)行后輸出結(jié)果為( )
public class Test
{
public static Test t1 = new Test();
{
System.out.println("blockA");
}
static
{
System.out.println("blockB");
}
public static void main(String[] args)
{
Test t2 = new Test();
}
}
正確答案: A
blockAblockBblockA
blockAblockAblockB
blockBblockBblockA
blockBblockAblockB
題解:
靜態(tài)塊:用static申明,JVM加載類時(shí)執(zhí)行,僅執(zhí)行一次
構(gòu)造塊:類中直接用{}定義,每一次創(chuàng)建對(duì)象時(shí)執(zhí)行
執(zhí)行順序優(yōu)先級(jí):靜態(tài)塊>main()>構(gòu)造塊>構(gòu)造方法
靜態(tài)塊按照申明順序執(zhí)行,先執(zhí)行Test t1 = new Test();
所以先輸出blockA,然后執(zhí)行靜態(tài)塊,輸出blockB,最后執(zhí)行main
方法中的Test t2 = new Test();輸出blockA。
5、Given the following code:
public class Test {
private static int j = 0;
private static Boolean methodB(int k) {
j += k;
return true;
}
public static void methodA(int i) {
boolean b;
b = i < 10 | methodB(4);
b = i < 10 || methodB(8);
}
public static void main(String args[]) {
methodA(0);
System.out.println(j);
}
}
正確答案: B
The program prints”0”
The program prints”4”
The program prints”8”
The program prints”12”
The code does not complete.
題解:
選 B
在main函數(shù)中先調(diào)用methodA(0)
在methodA中,第二行
b = i < 10 | methodB(4); //中間為與計(jì)算符,執(zhí)行完methodB(4)后,j = 4
methodA中,第三行
b = i < 10 || methodB(8);//中間為或計(jì)算符,因?yàn)閕 < 10 已成立,不需要后續(xù)計(jì)算
所以最后結(jié)果輸出為4
6、下列敘述中,錯(cuò)誤的是( )
正確答案: B
File類能夠存儲(chǔ)文件屬性
File類能夠讀寫文件
File類能夠建立文件
File類能夠獲取文件目錄信息
題解:
File類能操作文件本身,但不能對(duì)文件內(nèi)容進(jìn)行修改
能夠讀寫文件的是數(shù)據(jù)流(OutputStream和InputStream)
7、在Java中,對(duì)于不再使用的內(nèi)存資源,如調(diào)用完成的方法,“垃圾回收器”會(huì)自動(dòng)將其釋放。( )
正確答案: B
正確
錯(cuò)誤
題解:
方法調(diào)用時(shí),會(huì)創(chuàng)建棧幀在棧中,調(diào)用完是程序自動(dòng)出棧釋放,而不是gc釋放。
JVM 內(nèi)存可簡單分為三個(gè)區(qū):
1、堆區(qū)(heap):用于存放所有對(duì)象,是線程共享的(注:數(shù)組也屬于對(duì)象)
2、棧區(qū)(stack):用于存放基本數(shù)據(jù)類型的數(shù)據(jù)和對(duì)象的引用,是線程私有的(分為:虛擬機(jī)棧和本地方法棧)
3、方法區(qū)(method):用于存放類信息、常量、靜態(tài)變量、編譯后的字節(jié)碼等,是線程共享的(也被稱為非堆,即 None-Heap)
Java 的垃圾回收器(GC)主要針對(duì)堆區(qū)
8、在Java中,關(guān)于HashMap類的描述,以下正確的是 ()
正確答案: A C D 你
HashMap使用鍵/值得形式保存數(shù)據(jù)
HashMap 能夠保證其中元素的順序
HashMap允許將null用作鍵
HashMap允許將null用作值
題解:
HashMap 不按插入順序排序,按照哈希值排序。所以無序。
但是不增刪改鍵的情況下,輸出是按照一定順序不變的。
hashMap 允許空鍵值,hashTable 則不允許。
9、以下各類中哪幾個(gè)是線程安全的?( )
正確答案: B C D
ArrayList
Vector
Hashtable
Stack
題解:
線程同步:喂,SHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)
10、關(guān)于Java中的ClassLoader下面的哪些描述是錯(cuò)誤的:( )
正確答案: B D F
A:默認(rèn)情況下,Java應(yīng)用啟動(dòng)過程涉及三個(gè)ClassLoader: Boostrap, Extension, System
B:一般的情況不同ClassLoader裝載的類是不相同的,但接口類例外,對(duì)于同一接口所有類裝載器裝載所獲得的類是相同的
C:類裝載器需要保證類裝載過程的線程安全
D:ClassLoader的loadClass在裝載一個(gè)類時(shí),如果該類不存在它將返回null
E:ClassLoader的父子結(jié)構(gòu)中,默認(rèn)裝載采用了父優(yōu)先
F:所有ClassLoader裝載的類都來自CLASSPATH環(huán)境指定的路徑
題解:
A.Java系統(tǒng)提供3種類加載器:啟動(dòng)類加載器(Bootstrap ClassLoader) 擴(kuò)展類加載器(Extension ClassLoader) 應(yīng)用程序類加載器(Application ClassLoader). A正確
B.《深入理解Java虛擬機(jī)》P228:對(duì)于任意一個(gè)類,都需要由加載它的類加載器和這個(gè)類本身一同確立其在Java虛擬機(jī)中的唯一性,每一個(gè)類加載器,都擁有一個(gè)獨(dú)立的類名稱空間。這句話可以表達(dá)得更通俗一些:比較兩個(gè)類是否“相等”,只有在這兩個(gè)類是由同一個(gè)類加載器加載的前提下才有意義,否則,即使這兩個(gè)類來源于同一個(gè)Class文件,被同一個(gè)虛擬機(jī)加載,只要加載它們的類加載器不同,那么這兩個(gè)類必定不相等。接口類是一種特殊類,因此對(duì)于同一接口不同的類裝載器裝載所獲得的類是不相同的。B錯(cuò)誤
C.類只需加載一次就行,因此要保證類加載過程線程安全,防止類加載多次。C正確
D. Java程序的類加載器采用雙親委派模型,實(shí)現(xiàn)雙親委派的代碼集中在java.lang.ClassLoader的loadClass()方法中,此方法實(shí)現(xiàn)的大致邏輯是:先檢查是否已經(jīng)被加載,若沒有加載則調(diào)用父類加載器的loadClass()方法,若父類加載器為空則默認(rèn)使用啟動(dòng)類加載器作為父類加載器。如果父類加載失敗,拋出ClassNotFoundException異常。D錯(cuò)誤
E.雙親委派模型的工作過程:如果一個(gè)類加載器收到了類加載的請(qǐng)求,它首先不會(huì)自己去嘗試加載這個(gè)類,而是把這個(gè)請(qǐng)求委派給父類加載器去完成,每一個(gè)層次的類加載器都是如此,因此所有的加載請(qǐng)求最終都應(yīng)該傳送到頂層的啟動(dòng)類加載器中,只有當(dāng)父加載器反饋?zhàn)约簾o法完成這個(gè)加載請(qǐng)求時(shí),子加載器才會(huì)嘗試自己去加載。E正確
F.應(yīng)用程序類加載器(Application ClassLoader)負(fù)責(zé)加載用戶類路徑(ClassPath)上所指定的類庫,不是所有的ClassLoader都加載此路徑。F錯(cuò)誤
答案匯總:
1、正確答案: C
2、正確答案: D
3、正確答案: D
4、正確答案: A
5、正確答案: B
6、正確答案: B
7、正確答案: B
8、正確答案: A C D
9、正確答案: B C D
10、正確答案: B D F
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法
這篇文章主要介紹了C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法,相比普通方法能夠在Windows下簡化很多操作步驟,需要的朋友可以參考下2016-04-04
eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決
這篇文章主要介紹了eclipse自動(dòng)創(chuàng)建SpringBoot項(xiàng)目報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
SpringMvc使用GoogleKaptcha生成驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了SpringMvc項(xiàng)目中使用GoogleKaptcha 生成驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
Java對(duì)象的復(fù)制三種方式(小結(jié))
這篇文章主要介紹了Java對(duì)象的復(fù)制三種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Java集合Map的clear與new Map區(qū)別詳解
這篇文章主要介紹了Java集合Map的clear與new Map區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
使用Idea簡單快速搭建springcloud項(xiàng)目的圖文教程
這篇文章主要介紹了使用Idea簡單快速搭建springcloud項(xiàng)目,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
SpringBoot數(shù)據(jù)庫查詢超時(shí)配置詳解
這篇文章主要介紹了SpringBoot數(shù)據(jù)庫查詢超時(shí)配置,超時(shí)配置可以避免長時(shí)間占用數(shù)據(jù)庫連接,提高系統(tǒng)的響應(yīng)速度和吞吐量,還可以快速的反饋可以提升用戶體驗(yàn),避免用戶因長時(shí)間等待而感到挫敗,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下2024-11-11
mybatis設(shè)置sql執(zhí)行時(shí)間超時(shí)時(shí)間的方法
本文主要介紹了mybatis設(shè)置sql執(zhí)行時(shí)間超時(shí)時(shí)間的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

