Java日常練習題,每天進步一點點(21)
承蒙各位厚愛,我們一起每天進步一點點?。ㄊ髽诉x中空白處查看答案)
1、下面關(guān)于構(gòu)造方法的說法不正確的是 ()
正確答案: B
構(gòu)造方法也屬于類的方法,可以創(chuàng)建對象的時候給成員變量賦值
構(gòu)造方法不可以重載
構(gòu)造方法沒有返回值
構(gòu)造方法一定要和類名相同
題解:
1.構(gòu)造方法也是類的方法,可以在創(chuàng)建對象時為成員變量賦值
2.構(gòu)造方法可以進行重載,但是參數(shù)列表必須不相同,不以返回值和訪問級別進行區(qū)分
3.構(gòu)造方法沒有返回值
4.構(gòu)造方法一定要與定義為public的類同名
2、以下多線程對int型變量x的操作,哪個不需要進行同步( )
正確答案: D
x=y;
x++;
++x;
x=1;
題解:
A.由于y的值不確定,所以要加鎖;
B,C 兩個在多線程情況下是必須要加鎖的,因為他們是先被讀入寄存器,然后再進行+1操作,如果沒有加鎖,那么可能會出現(xiàn)數(shù)據(jù)異常;
D 原子操作,所以不需要加鎖
原子性:指該操作不能再繼續(xù)劃分為更小的操作。
Java中的原子操作包括:
1、除long和double之外的基本類型的賦值操作
2、所有引用reference的賦值操作
3、java.concurrent.Atomic. * 包中所有類的一切操作
3、運行下面代碼,輸出的結(jié)果是()
class A { public A() { System.out.println("class A"); } { System.out.println("I'm A class"); } static { System.out.println("class A static"); } } public class B extends A { public B() { System.out.println("class B"); } { System.out.println("I'm B class"); } static { System.out.println("class B static"); } public static void main(String[] args) { new B(); } }
正確答案: A
A:class A static
class B static
I'm A class
class A
I'm B class
class B
手動分割
B:class A static
I'm A class
class A
class B static
I'm B class
class B
手動分割
C:class A static
class B static
class A
I'm A class
class B
I'm B class
手動分割
D:class A static
class A
I'm A class
class B static
class B
I'm B class
題解:
父類靜態(tài)代碼塊–>子類靜態(tài)代碼塊–>父類普通代碼塊–>父類構(gòu)造方法–>子類代碼塊–>子類構(gòu)造方法;
Java程序初始化順序:
1.父類的靜態(tài)代碼塊
2.子類的靜態(tài)代碼塊
3.父類的普通代碼塊
4.父類的構(gòu)造方法
5.子類的普通代碼塊
6.子類的構(gòu)造方法
4、下面的程序 編譯運行后,在屏幕上顯示的結(jié)果是()
public class test {
public static void main(String args[]) {
int x,y;
x=5>>2;
y=x>>>2;
System.out.println(y);
}
}
正確答案: A
0
2
5
80
題解:
5 >> 2 相當于 5除以4(2的平方),等于1 ,>>> 表示無符號 右移,高位用0 填充,0001 右移兩位 0000,所以答案選 A
5、Which lines of the following will produce an error?
1.byte a1 = 2, a2 = 4, a3;
2.short s = 16;
3.a2 = s;
4.a3 = a1 * a2;
正確答案: A
Line 3 and Line 4
Line 1 only
Line 3 only
Line 4 only
題解:
short類型轉(zhuǎn)為byte類型出錯
a1 * a2結(jié)果為int類型,轉(zhuǎn)為byte類型出錯
數(shù)值型變量在默認情況下為Int型,byte和short型在計算時會自動轉(zhuǎn)換為int型計算,結(jié)果也是int 型。所以a1*a2的結(jié)果是int 型的。
byte+byte=int,低級向高級是隱式類型轉(zhuǎn)換,高級向低級必須強制類型轉(zhuǎn)換,byte<char<short<int<long<float<double
6、JSP分頁代碼中,哪個步驟次序是正確的?
正確答案: A
先取總記錄數(shù),得到總頁數(shù),最后顯示本頁的數(shù)據(jù)。
先取所有的記錄,得到總頁數(shù),再取總記錄數(shù),最后顯示本頁的數(shù)據(jù)。
先取總頁數(shù),得到總記錄數(shù),再取所有的記錄,最后顯示本頁的數(shù)據(jù)。
先取本頁的數(shù)據(jù),得到總頁數(shù),再取總記錄數(shù),最后顯示所有的記錄。
7、下面哪個不對?
正確答案: C
A:RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
B:A method is not required to declare in its throws clause any subclasses of RuntimeExeption that might be thrown during the execution of the method but not caught
C:An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.
D:NullPointerException is one kind of RuntimeException
翻譯:
A:RuntimeException是那些可以在Java虛擬機正常運行期間拋出的異常的超類。
B:方法不需要在其throws子句中聲明任何可能在方法執(zhí)行期間拋出但未被捕獲的runtimeexception子類
C: RuntimeException是Throwable的一個子類,它指示一個合理的應(yīng)用程序不應(yīng)該試圖捕獲的嚴重問題。
D:NullPointerException是一種RuntimeException
題解:
A選項是RuntimeException的定義;
B選項是把Error的第二段定義拿來改掉換成RuntimeException,但這樣說對于RuntimeException也沒錯;
C選項也是把Error的定義換成了RuntimeException,但這里的"indicates serious problems"不應(yīng)該用在RuntimeException上,Error才表示嚴重的錯誤,RuntimeException并不是.
D選項顯然.
運行時異常: 都是RuntimeException類及其子類異常,如NullPointerException(空指針異常)、IndexOutOfBoundsException(下標越界異常)等,這些異常是不檢查異常,程序中可以選擇捕獲處理,也可以不處理。這些異常一般是由程序邏輯錯誤引起的,程序應(yīng)該從邏輯角度盡可能避免這類異常的發(fā)生。
運行時異常的特點是Java編譯器不會檢查它,也就是說,當程序中可能出現(xiàn)這類異常,即使沒有用try-catch語句捕獲它,也沒有用throws子句聲明拋出它,也會編譯通過。
非運行時異常 (編譯異常): 是RuntimeException以外的異常,類型上都屬于Exception類及其子類。從程序語法角度講是必須進行處理的異常,如果不處理,程序就不能編譯通過。如IOException、SQLException等以及用戶自定義的Exception異常,一般情況下不自定義檢查異常。
8、下面代碼將輸出什么內(nèi)容:()
public class SystemUtil{
public static boolean isAdmin(String userId){
return userId.toLowerCase()==“admin”;
}
public static void main(String[] args){
System.out.println(isAdmin(“Admin”));
}
}
正確答案: B
true
false
1
編譯錯誤
題解:
equals和==的區(qū)別 :
==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。
equals比較的才是內(nèi)容,所以返回false
9、關(guān)于Java中的數(shù)組,下面的一些描述,哪些描述是準確的:( )
正確答案: A C F
A數(shù)組是一個對象,不同類型的數(shù)組具有不同的類
B數(shù)組長度是可以動態(tài)調(diào)整的
C數(shù)組是一個連續(xù)的存儲結(jié)構(gòu)
D一個固定長度的數(shù)組可類似這樣定義: int array[100]
E兩個數(shù)組用equals方法比較時,會逐個便利其中的元素,對每個元素進行比較
F可以二維數(shù)組,且可以有多維數(shù)組,都是在Java中合法的
題解:
數(shù)組的長度是固定的,int[] array =new int[100]就對了
10、下列流當中,屬于處理流的是:()
正確答案: C D
FilelnputStream
lnputStream
DatalnputStream
BufferedlnputStream
題解:
按照流是否直接與特定的地方(如磁盤、內(nèi)存、設(shè)備等)相連,分為節(jié)點流和處理流兩類。
節(jié)點流:可以從或向一個特定的地方(節(jié)點)讀寫數(shù)據(jù)。
如FileReader.處理流:是對一個已存在的流的連接和封裝,通過所封裝的流的功能調(diào)用實現(xiàn)數(shù)據(jù)讀寫。
如BufferedReader.處理流的構(gòu)造方法總是要帶一個其他的流對象做參數(shù)。一個流對象經(jīng)過其他流的多次包裝,稱為流的鏈接。
JAVA常用的節(jié)點流:
文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件進行處理的節(jié)點流。
字符串 StringReader StringWriter 對字符串進行處理的節(jié)點流。
數(shù) 組 ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 對數(shù)組進行處理的節(jié)點流(對應(yīng)的不再是文件,而是內(nèi)存中的一個數(shù)組)。
管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter對管道進行處理的節(jié)點流。
常用處理流(關(guān)閉處理流使用關(guān)閉里面的節(jié)點流)
緩沖流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter 增加緩沖功能,避免頻繁讀寫硬盤。
轉(zhuǎn)換流:InputStreamReader OutputStreamReader 實現(xiàn)字節(jié)流和字符流之間的轉(zhuǎn)換。
數(shù)據(jù)流 DataInputStream DataOutputStream 等-提供將基礎(chǔ)數(shù)據(jù)類型寫入到文件中,或者讀取出來.
流的關(guān)閉順序
1.一般情況下是:先打開的后關(guān)閉,后打開的先關(guān)閉
2.另一種情況:看依賴關(guān)系,如果流a依賴流b,應(yīng)該先關(guān)閉流a,再關(guān)閉流b。例如,處理流a依賴節(jié)點流b,應(yīng)該先關(guān)閉處理流a,再關(guān)閉節(jié)點流b
3.可以只關(guān)閉處理流,不用關(guān)閉節(jié)點流。處理流關(guān)閉的時候,會調(diào)用其處理的節(jié)點流的關(guān)閉方法。
答案匯總:
1、正確答案: B
2、正確答案: D
3、正確答案: A
4、正確答案: A
5、正確答案: A
6、正確答案: A
7、正確答案: C
8、正確答案: B
9、正確答案: A C F
10、正確答案: C D
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
java將XML文檔轉(zhuǎn)換成json格式數(shù)據(jù)的示例
本篇文章主要介紹了java將XML文檔轉(zhuǎn)換成json格式數(shù)據(jù)的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12Java 如何繞過迭代器遍歷時的數(shù)據(jù)修改異常
這篇文章主要介紹了Java 繞過迭代器遍歷時的數(shù)據(jù)修改異常的方法,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下2021-02-02