1.jre與jdk的區別
解釋jre與jdk的英文
2.System.out.println(12345+5432l)結果為17777為什么?
5432之后跟的是“L”
3. byte b1 =3,b2=4; byte b3 = b2 +b1;運行結果
A.報錯,b1和b2會被提升為int型
B.b1,b2是變數,java編譯器只有常量優化機制
4.float和long的取值范圍誰大
float用IE754編碼,有8位為指數位
5.short s=1; s=s+1; 報錯,int
short s=1;s+=1; 底層自動轉化為s=(short)(s+1)
6. java中到底是傳值還是傳址
a.既是傳值又是傳址,基本資料型別傳值,參考資料型別傳址
b.java中只有傳值,因為地址值也是值(面試這么說,支持者是高斯林java之父)
7.一個抽象類如果沒有抽象方法,可行嗎?
可以,這么做可以不讓其他類創建本類物件,交給子類完成
8.abstract不能和哪些關鍵字共存?
abstract和static,被static修飾可以類名.呼叫,但類名.抽象方法是沒有意義的,被abstract修飾沒有方法體
abstract和final,被final修飾強制子類重寫,被abstract修飾不讓子類重寫
abstract和private,被private修飾不讓子類訪問,被abstract修飾是為了讓子類看到強制重寫
9.interface Inter{
void show();
}
class outer{
//補齊代碼,要求能夠在主方法中運行outer.method.show();
}
答:根據能夠呼叫.show得知回傳的物件是inter型別
public static Inter method(){
return new Inter(){
public void show(){
syso("hi");
}
};
}
10.
-128~127是byte的取值范圍,如果在這個取值范圍內,自動裝箱就不會創建新物件,而是從常量池中獲取,如果超過了byte取值范圍就會新創物件
11.Hsahmap和HashTable的區別
相同:底層都是哈希演算法,都是雙列集合
區別:1.Hsahmap執行緒不安全,效率高,JDK1.2
HashTable執行緒安全,效率低,JDK1.0
2.HsahMap可以存盤null鍵和null值,table不可以
12.throw和throws的區別
a.throws用在方法宣告后,跟的是類名
可以跟多個例外類名,可用逗號隔開
表示拋出例外,由該方法的呼叫處理
b.throw
用在方法體內,跟的是例外物件名
只能拋出一個例外物件名
表示拋出例外,由方法體內的陳述句處理
13.final,finally,finalize的區別
final,修飾類不可繼承,方法不可重寫,變數只能賦值一次
finally是try陳述句中的一個陳述句體,不能單獨使用,用來釋放資源
finalize是一個方法,當垃圾回收器不存在該物件的參考時,用物件的垃圾回收器呼叫此方法
執行緒間通信的注意事項
14.在同步代碼塊中,用哪個物件鎖,就用哪個物件呼叫wait方法
15.為什么wait和notify方法定義在object類中?
因為鎖物件可以是任意物件,object是所有類的基類,所以要定義在此類中
16.sleep和wait方法的區別
A sleep必須傳入引數,引數時間到了自動醒來
wait傳參就是引數的時間結束后等待,不傳則直接等待
B sleep不釋放鎖,wait釋放鎖
17.編譯時例外與運行時例外有什么區別?
編譯時例外,又稱未雨綢繆例外,受程式運行的背景關系環境影響
運行時例外,程式代碼錯誤‘
18.什么是java序列化,如何實作序列化
把Java物件轉換為位元組序列的程序,序列化是一種處理物件流化的機制,解決物件的讀寫問題,
實作serializable介面,使用fileoutputstream創建objectoutputstream,使用wiriteobject寫出
19.java中字符流和位元組流的區別?
字符流,繼承于inputstream,outputstream
字符流,繼承于inputstreamreader
20.例外指java運行程式時發生錯誤,根類為java.lang.throwable,子類分為error(無救)嚴重錯誤 和 exception(有救)程式設計有問題
應用在程式運行利用throw拋出例外,避開一些特殊的錯誤,也可以自定義例外
21.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282227.html
標籤:其他
