Java日常練習(xí)題,每天進步一點點(4)
承蒙各位厚愛,我們一起每天進步一點點?。ㄊ髽诉x中空白處查看答案)
1、類 ABC 定義如下:
public class ABC{
public int max( int a, int b) { }
}
將以下哪個方法插入行 3 是不合法的。( )。
正確答案: B
public float max(float a, float b, float c){ }
public int max (int c, int d){ }
public float max(float a, float b){ }
private int max(int a, int b, int c){ }
題解:
注意是不合法,這題考察重載
細說一下重寫和重載:
這兩個都是多態(tài)的一種表現(xiàn)形式。
重載:
1、 重載是在編譯器通過方法中形參的靜態(tài)類型確定調(diào)用方法版本的過程。
2、 重載是多態(tài)在編譯期的表現(xiàn)形式
3、 重載的判定只有兩個條件(其他的條件都不能作為判定):
1、 方法名一致
2、形參列表不同
重寫:
1、重寫在方法運行時,通過調(diào)用者的實際類型來確定調(diào)用的方法版本。(具體細說,就是子父類中的重寫方法在對應(yīng)的class文件常量池的位置相同,一旦子類沒有重寫,那么子類的實例就會沿著這個位置往上找,直到找到父類的同名方法)
2、重寫只發(fā)生在可見的實例方法中:
1、靜態(tài)方法不存在重寫,形式上的重寫只能說是隱藏。
2、私有方法也不存在重寫,父類中private的方法,子類中就算定義了,就是相當(dāng)于一個新的方法。
3、靜態(tài)方法和實例方法不存在相互重寫。
3、重寫滿足一個規(guī)則:兩同兩小一大
1、兩同:方法名和形參列表一致
2、兩?。褐貙懛椒ǖ姆祷刂担ㄒ妙愋停┖蛼伋霎惓?,要和被重寫方法的返回值(引用類型)和拋出異常相同或者是其子類。注意,一旦返回值是基本數(shù)據(jù)類型,那么重寫方法和被重寫方法必須相同,且不存在自動拆裝箱的問題。
3、一大:重寫方法的訪問修飾符大于等于被重寫方法的訪問修飾符。
B選項方法名、形參列表和返回值類型與題目完全一樣,故既不是重寫也不是重載
2、后端獲取數(shù)據(jù),向前端輸出過程中,以下描述正確的是
正確答案: D
對于前端過濾過的參數(shù),屬于可信數(shù)據(jù),可以直接輸出到前端頁面
對于從數(shù)據(jù)庫獲得的數(shù)據(jù),屬于可信數(shù)據(jù),可以直接輸出到前端頁面
對于從用戶上傳的Excel等文件解析出的數(shù)據(jù),屬于可信數(shù)據(jù),可以直接輸出到前端頁面
其它選項都不屬于可信數(shù)據(jù),輸出前應(yīng)該采用信息安全部發(fā)布的XSSFilter做進行相應(yīng)編碼
題解:
后端獲取數(shù)據(jù),向前端輸出的過程中,輸出前應(yīng)該采用信息安全部發(fā)布的XSSFilter進行相應(yīng)編碼。
3、在異常處理中,以下描述不正確的有
正確答案: D
try塊不可以省略
可以使用多重catch塊
finally塊可以省略
catch塊和finally塊可以同時省略
題解:
選D 假如try中有異常拋出,則會去執(zhí)行catch塊,再去執(zhí)行finally塊;假如沒有catch 塊,可以直接執(zhí)行finally 塊,方法就以拋出異常的方式結(jié)束,而finally 后的內(nèi)容也不會被執(zhí)行,所以catch 和 finally 不能同時省略。
4、如果一個接口Cup有個方法use(),有個類SmallCup實現(xiàn)接口Cup,則在類SmallCup中正確的是? ( )
正確答案: C
void use() { …}
protected void use() { …}
public void use() { …}
以上語句都可以用在類SmallCup中
題解:
1.題目說了實現(xiàn),那么接口中的方法是抽象方法
2.接口中的抽象方法是public修飾
3.實現(xiàn)就意味著重寫,重寫的方法的權(quán)限不能小于被重寫的方法
4.而最大的權(quán)限是public,即public<=重寫的方法的權(quán)限<=public,即重寫的方法的權(quán)限只能為public
5、下面的程序?qū)泶蛴∈裁?#63;()
public class TestIncr {
public static void main(String args[]) {
int i = 0;
i = i++ + i;
System.out.println(“I =” +i);
}
}
正確答案: A
I = 1
I = 2
I = 3
編譯出錯
題解:
首先,在 i = i++ + i 中,先執(zhí)行的是 i++ ,此時式子可為 i = 0 + i
然后再進行后一步 +i ,因為前面執(zhí)行了 i++ ,所以這個 i 的值已經(jīng) +1 了
那么最后這個式子就是 i = 0 + 1
6、執(zhí)行以下程序后的輸出結(jié)果是()
public class Test {
public static void main(String[] args) {
StringBuffer a = new StringBuffer(“A”);
StringBuffer b = new StringBuffer(“B”);
operator(a, b);
System.out.println(a + “,” + b);
}
public static void operator(StringBuffer x, StringBuffer y) {
x.append(y); y = x;
}
}
正確答案: D
A,A
A,B
B,B
AB,B
題解:
a和x是同個地址,b和y是同個地址,然后執(zhí)行x.append(y)就把y的值放在x的地址里面此時a地址和x是同一個所以a就是AB了,接著執(zhí)行y=x是把x的地址給y,這時候axy屬于同一個地址。所以y=x 只是改變了y的地址沒改變b的地址,所以b還是B
7、java語言的下面幾種數(shù)組復(fù)制方法中,哪個效率最高?
正確答案: B
for 循環(huán)逐一復(fù)制
System.arraycopy
Array.copyOf
使用clone方法
題解:
從速度上看:System.arraycopy > clone > Arrays.copyOf > for
System.arraycopy():native方法+JVM手寫函數(shù),在JVM里預(yù)寫好速度最快
clone():native方法,但并未手寫,需要JNI轉(zhuǎn)換,速度其次
Arrays.copyof():本質(zhì)是調(diào)用1的方法
for():全是深復(fù)制,并且不是封裝方法,最慢情有可原
8、有關(guān)會話跟蹤技術(shù)描述正確的是()
正確答案: A B C
Cookie是Web服務(wù)器發(fā)送給客戶端的一小段信息,客戶端請求時,可以讀取該信息發(fā)送到服務(wù)器端
關(guān)閉瀏覽器意味著臨時會話ID丟失,但所有與原會話關(guān)聯(lián)的會話數(shù)據(jù)仍保留在服務(wù)器上,直至?xí)掃^期
在禁用Cookie時可以使用URL重寫技術(shù)跟蹤會話
隱藏表單域?qū)⒆侄翁砑拥紿TML表單并在客戶端瀏覽器中顯示
題解:
D:隱藏域在頁面中對于用戶(瀏覽器)是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
9、關(guān)于Java內(nèi)存區(qū)域下列說法不正確的有哪些
正確答案: B C
程序計數(shù)器是一塊較小的內(nèi)存空間,它的作用可以看做是當(dāng)前線程所執(zhí)行的字節(jié)碼的信號指示器,每個線程都需要一個獨立的
程序計數(shù)器.
Java虛擬機棧描述的是java方法執(zhí)行的內(nèi)存模型,每個方法被執(zhí)行的時候都會創(chuàng)建一個棧幀,用于存儲局部變量表、類信息、
動態(tài)鏈接等信息
Java堆是java虛擬機所管理的內(nèi)存中最大的一塊,每個線程都擁有一塊內(nèi)存區(qū)域,所有的對象實例以及數(shù)組都在這里分配內(nèi)存。
方法區(qū)是各個線程共享的內(nèi)存區(qū)域,它用于存儲已經(jīng)被虛擬機加載的常量、即時編譯器編譯后的代碼、靜態(tài)變量等數(shù)據(jù)。
題解:
B.類信息不是存儲在java虛擬機棧中,而是存儲在方法區(qū)中;
C.java堆是被所有線程共享的一塊內(nèi)存區(qū)域,而不是每個線程都擁有一塊內(nèi)存區(qū)域。
A.程序計數(shù)器是一塊較小的內(nèi)存空間,它的作用可以看做是當(dāng)前線程所執(zhí)行的字節(jié)碼的信號指示器(偏移地址),Java編譯過程中產(chǎn)生的字節(jié)碼有點類似編譯原理的指令,程序計數(shù)器的內(nèi)存空間存儲的是當(dāng)前執(zhí)行的字節(jié)碼的偏移地址,每一個線程都有一個獨立的程序計數(shù)器(程序計數(shù)器的內(nèi)存空間是線程私有的),因為當(dāng)執(zhí)行語句時,改變的是程序計數(shù)器的內(nèi)存空間,因此它不會發(fā)生內(nèi)存溢出 ,并且程序計數(shù)器是jvm虛擬機規(guī)范中唯一一個沒有規(guī)定 OutOfMemoryError 異常 的區(qū)域;
B.java虛擬機棧:線程私有,生命周期和線程一致。描述的是 Java 方法執(zhí)行的內(nèi)存模型:每個方法在執(zhí)行時都會床創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息。每一個方法從調(diào)用直至執(zhí)行結(jié)束,就對應(yīng)著一個棧幀從虛擬機棧中入棧到出棧的過程。 沒有類信息,類信息是在方法區(qū)中
C.java堆:對于絕大多數(shù)應(yīng)用來說,這塊區(qū)域是 JVM 所管理的內(nèi)存中最大的一塊。線程共享,主要是存放對象實例和數(shù)組
D.方法區(qū):屬于共享內(nèi)存區(qū)域,存儲已被虛擬機加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù)。
10、下面的Java賦值語句哪些是有錯誤的 ()
正確答案: B C F
A:int i =1000;
B:float f = 45.0;
C:char s = ‘\u0639'
D:Object o = ‘f';
E:String s = “hello,world\0”;
F:Double d = 100;
題解:
A:沒毛病
B:小數(shù)默認雙精度(double)的,賦值給浮點型(float)屬下轉(zhuǎn)型,會造成精度損失,需要強制類型轉(zhuǎn)換float f =(float)45.0; 或者寫成float f =45.0F;。
C:沒分號啊
D:可以把任何一種數(shù)據(jù)類型的變量賦給Object類型的變量,因為java所有類默認繼承Object,基本數(shù)據(jù)類型賦值給Object會先裝箱,裝箱之后就是Object的子類了;
E:沒毛病,字符串中的\0被編譯為\u0000,表示一個空字符。
F:注意:double d=100,這樣沒毛病,但是題中是Double啊,會自動裝箱, 裝箱過程中調(diào)用的是Double類的valueOf( double d )方法, 而這里是100為int型, 所以編譯會“cannot convert from int to Double”
答案匯總:
1、正確答案: B
2、正確答案: D
3、正確答案: D
4、正確答案: C
5、正確答案: A
6、正確答案: D
7、正確答案: B
8、正確答案: A B C
9、正確答案: B C
10、正確答案: B C F
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java 數(shù)據(jù)結(jié)構(gòu)線性表之順序存儲詳解原理
線性表的順序存儲是指用一組地址連續(xù)的存儲單元依次存儲線性表中的各個元素、使得線性表中在邏輯結(jié)構(gòu)上相鄰的數(shù)據(jù)元素存儲在相鄰的物理存儲單元中,即通過數(shù)據(jù)元素物理存儲的相鄰關(guān)系來反映數(shù)據(jù)元素之間邏輯上的相鄰關(guān)系2021-10-10詳解基于Spring Cloud幾行配置完成單點登錄開發(fā)
這篇文章主要介紹了詳解基于Spring Cloud幾行配置完成單點登錄開發(fā),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02Java中的 FilterInputStream簡介_動力節(jié)點Java學(xué)院整理
FilterInputStream 的作用是用來“封裝其它的輸入流,并為它們提供額外的功能”。接下來通過本文給大家分享Java中的 FilterInputStream簡介,感興趣的朋友一起學(xué)習(xí)吧2017-05-05spring boot springMVC擴展配置實現(xiàn)解析
這篇文章主要介紹了spring boot springMVC擴展配置實現(xiàn)解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08Java配置JDK開發(fā)環(huán)境及環(huán)境變量
這篇文章主要為大家詳細介紹了Java配置JDK開發(fā)環(huán)境及環(huán)境變量,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-09-09詳解spring cloud hystrix請求緩存(request cache)
這篇文章主要介紹了詳解spring cloud hystrix請求緩存(request cache),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05