-
接口與抽象類的異同
相同:- 都可以生成 對應的。class文件。
- 都不能創建對象。
- 都可以聲明引用。
- 都可以使用object中的方法。
不同: - 接口只能定義公開靜態常量,隱式存在public static final.
- 接口只能定義公開抽象方法。
- 沒有構造方法,動態代碼塊,靜態代碼塊。
-
“==”和equals的區別
- ==:比較基本數據類型比較的是數值是否相同;比較引用數據類型比較的是地址是否相同。
- equals:只能比較引用數據類型,默認比較地址覆蓋之後比較內容。
-
類加載:
- 概念:當jvm首次使用某個類,這個類的.class文件必須先加載到內存中。
- 加載的時機:創建對象、創建子類對象、訪問靜態屬性、調用靜態方法。
-
緩存
java預先創建256個整數類型的包裝類對象,存放在數組中。 -
String
String s=“hello” 和String s2=new String(“hello”)的區別?
前置創建一個對象,後者創建兩個對象。 -
String和StringBuffer和StringBuilder區別?
String:內容和長度不變。
String Buffer和StringBuilder:內容和長度可變。
StringBuffer:線程安全,效率低。
StringBulider:線程不安全,效率高。 -
List三個實現類的特點
- ArrayList:底層數組,查詢快,增刪慢,線程不安全,效率低。
- Vector:底層數組,查詢快,增刪慢,線程安全,效率低。
- Linkedlist:底層鏈表,查詢慢,增刪快。
-
HashSet如何保證元素唯一?
-
HashMap和Hashtable的區別?
Hashmap可以存儲null鍵和null值,線程不安全,效率高。
Hashtable不可用存儲null鍵和null值,線程安全,效率低。 -
throws和throw區別?
throws:
1. 寫在方法聲明的後面。
2. 後面跟的是異常類名。
3. 後面可以跟多個異常類名。
throw:
1. 寫在方法的內部。
2. 後面跟的是異常對象。
3. 後面只能是一個異常對象。 -
final、 finally、 finalize的區別?
final:最終
修飾類:類不能被繼承。
修飾方法:方法不能被覆蓋。
修飾變量:變量爲常量只能賦值一次。
finally:異常處理的組成部分,作用:釋放資源,放在finally中的代碼一定會執行。
finalize:是object類中的方法,用於垃圾回收。
JAVASE常見面試題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.