1. 程式人生 > >每日10道JAVA題答案(20180622)

每日10道JAVA題答案(20180622)

題目

1.D

A.檔案分為文字檔案和二進位制檔案,計算機只認識二進位制,所以實際上都是二進位制的不同解釋方式。文字檔案是以不同編碼格式顯示的字元,例如Ascii、Unicode等,window中文字檔案的字尾名有".txt",".log",各種程式語言的原始碼檔案等;二進位制檔案就是用文字文件開啟是看不懂亂碼,只要能用文字開啟的檔案都可以算是文字檔案,只是顯示的結果不是你想要的,二進位制檔案只有用特殊的應用才能讀懂的檔案,例如".png",".bmp"等,計算機中大部分的檔案還是二進位制檔案。
B.File類是對檔案整體或者檔案屬性操作的類,例如建立檔案、刪除檔案、檢視檔案是否存在等功能,不能操作檔案內容;檔案內容是用IO流操作的。
C.當輸入過程中意外到達檔案或流的末尾時,丟擲EOFException異常,正常情況下讀取到檔案末尾時,返回一個特殊值表示檔案讀取完成,例如read()返回-1表示檔案讀取完成。
D.上面A選項已經說了,不論是文字檔案還是二進位制檔案,在計算機中都是以二進位制形式儲存的,所以都當做二進位制檔案讀取。


2.D
1.ArrayList刪除元素後,剩餘元素會依次向前移動,因此下標一直在變,size()也會減小;
2.remove()方法呼叫的是remove(int index),而不是remove(Object o),因此刪除的是index索引處的元素;
該題具體流程:1.i=0,v=2,remove(2)刪除掉了元素1,因此NumberList剩餘元素為【2,4,3,5】;
              2.i=1,v=4,remove(4),此時線性表中只有四個元素,不可能刪除索引為4的元素,因此會報陣列下標越界異常。


3.A


我們都知道一個物件只要實現了Serilizable介面,這個物件就可以被序列化,java的這種序列化模式為開發者提供了很多便利,我們可以不必關係具體序列化的過程,只要這個類實現了Serilizable介面,這個類的所有屬性和方法都會自動序列化。
這個類的有些屬性需要序列化,而其他屬性不需要被序列化;
java 的transient關鍵字為我們提供了便利,你只需要實現Serilizable介面,將不需要序列化的屬性前新增關鍵字transient,序列化物件的時候,這個屬性就不會序列化到指定的目的地中。  


4.A
註解:java 中沒有<> := 這種運算子, if else不算運算子,因此選a


5.D
在《java虛擬機器》一書中明確講了,釋放掉佔據的記憶體空間是由gc完成,但是程式設計師無法明確強制其執行,該空間在不被引用的時候不一定會立即被釋放,這取決於GC本身,無法由程式設計師通過程式碼控制。


6.D
1.靜態語句塊中x為區域性變數,不影響靜態變數x的值
2.x和y為靜態變數,預設初始值為0,屬於當前類,其值得改變會影響整個類執行。
3.java中自增操作非原子性的 
main方法中:
執行x--後 x=-1
呼叫myMethod方法,x執行x++結果為-1(後++),但x=0,++x結果1,x=1 ,則y=0
x+y+ ++x,先執行x+y,結果為1,執行++x結果為2,得到最終結果為3


7.CD 
思路:對於java命令,類名後面跟著的就是main函式的引數,多個引數則用空格隔開。 main方法的形參是一個string陣列所以對於java mytest a b c傳入的引數算是一個string陣列。 即args[0]=a args[1]=b args[2]=c


8.ACD
a選項-d即可設定系統屬性
c選項一次編譯多個java檔案用javac *.java. 即可編譯當前目錄下的所有java檔案
d選項-s指定存放生成的原始檔的位置


9.ABD
A和B中long和float,正常定義需要加l和f,但是long和float屬於基本型別,會進行轉化,所以不會報出異常。AB正確
boolean型別不能和任何型別進行轉換,會報出型別異常錯誤。所以C錯。
D選項可以這樣定義,D正確。
E選項中,byte的取值範圍是-128—127。報出異常: cannot convert from int to byte.所以E選項錯誤。


10.A B D 
throws用於在方法上宣告該方法不需要處理的異常型別,用在方法上後面跟異常類名 可以是多個異常類
throw用於丟擲具體異常類的物件,用在方法內 後面跟異常物件只能是一個異常型別實體.
try塊必須和catch塊或和finally同在,不能單獨存在,二者必須出現一個. 
finally塊總會執行,不論是否有錯誤出現.但是若try語句塊或會執行的catch語句塊使用了JVM系統退出語句,finally塊就不會被執行了. 一般我們把關閉資源的程式碼放在finally裡面 保證資源總是能關閉
然後再看這一題 A肯定對了,C根本就跟異常處理沒有關係,所以不選。就算有關係也錯了
final用於宣告屬性、方法、類。分別表示屬性不可更改、方法不能被覆蓋、類不能被繼承。
所以C選項說方法不能被繼承錯誤,是不能覆蓋
B、D咬文嚼字說是因為
B. throws是用來宣告一個成員方法可能丟擲的各種異常情況.