2017JAVA經(jīng)典基礎(chǔ)面試題及答案
抽象類可以有抽象方法,和普通方法、還可以包含普通類成員的一切成員。下面就由學習啦小編為大家介紹一下2017JAVA經(jīng)典基礎(chǔ)面試題的文章,歡迎閱讀。
2017JAVA經(jīng)典基礎(chǔ)面試題篇1
1、基本數(shù)據(jù)類型
數(shù)值型:byte 、short、int、long(浮點類型:double float)
字符型:char
布爾值:boolean
2、標識符的命名規(guī)則?
字母,數(shù)字、下劃線或者美元符號組成!
首字母不能以數(shù)字開頭
不能用關(guān)鍵字,布爾值 ,null
區(qū)分大小寫,沒有長度限制,堅持見名知義的原則!
3、引用數(shù)據(jù)類型
String 類、接口、數(shù)組
4、抽象類和接口的區(qū)別?
抽象類可以有抽象方法,和普通方法、還可以包含普通類成員的一切成員。
接口里面全部是靜態(tài)常量、一個類只能繼承一個抽象類。一個類可以實現(xiàn)多個接口!簡單來說,
接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的,
另外,實現(xiàn)接口的一定要實現(xiàn)接口里定義的所有方法,而實現(xiàn)抽象類可以有選擇地重寫需要用到的方法,一般的應用里,
最頂級的是接口,然后是抽象類實現(xiàn)接口,最后才到具體類實現(xiàn)。
還有,接口可以實現(xiàn)多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個接口實現(xiàn)多重繼承
2017JAVA經(jīng)典基礎(chǔ)面試題篇2
1、重寫和重載?
重載涉及同一個類的同名方法,要求方法名相同,參數(shù)列表不同,與返回值類型無關(guān)
重寫是子類和父類之間的同名方法,要求方法名相同,參數(shù)列表相同,返回值類型相同!
2、string stringbuff stringbuding區(qū)別
在單機非多線程(Multithread)的情況下使用StringBuilder會有較好的效率,因為StringBuilder沒有處理同步(Synchronized)問題
StringBuffer則會處理同步問題,如果StringBuilder會在多線程下被操作,則要改用StringBuffer,讓對象自行管理同步問題。
3、集合類?
Java的集合類主要有Map接口和Collection接口派生
Collection是集合類的一個頂級接口,其直接繼承接口有List與Set
list集合繼承Collection接口,是有序接口!List中允許重復的元素,也就是說List是一組不唯一,有序的對象!
list接口的實現(xiàn)類有arrayList和LinkedList.
arraylist內(nèi)存分配連續(xù)的空間 善于查找比較快!
LinkedList采用鏈表,刪除和插入效率比較高!
ArrayList 是一個可改變大小的數(shù)組.當更多的元素加入到ArrayList中時,其大小將會動態(tài)地增長.內(nèi)部的元素可以直接通過get與set方法進行訪問,因為ArrayList本質(zhì)上就是一個數(shù)組.
LinkedList 是一個雙鏈表,在添加和刪除元素時具有比ArrayList更好的性能.但在get與set方面弱于ArrayList.
Set
set接口可以存儲一組唯一。無序的對象
set的實現(xiàn)類有hashSet
hashSet的優(yōu)點是集合的元素是無序的排列、允許集合的元素為null,查找效率高!
Map是一組鍵值對(key、value)
key不要求有序,不允許重復
value不要求有序,但允許重復的!
優(yōu)點在與查詢指定的元素比較高!
2017JAVA經(jīng)典基礎(chǔ)面試題篇3
1、Hashmap 和hashtabie的區(qū)別
1)繼承與實現(xiàn)的不同
HashTable是基于陳舊的Dictionary類,完成了Map接口;HashMap是Java1.2引進的Map接口的一個實現(xiàn)(HashMap繼承于AbstractMap,AbstractMap完成了Map接口)
2)線程安全不同
HashTable的方法是同步的,HashMap的方法是未同步的。
3)對null的處理不同
HashTable不允許null值的存在,HashMap允許null值的存在
2、final, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。
3、char型變量中能不能存貯一個中文漢字?為什么?.
可以啊。JAVA默認的編碼是unicode
4、靜態(tài)變量和實例變量的區(qū)別?
靜態(tài)變量屬于類,該類不生產(chǎn)對象,通過類名就可以調(diào)用靜態(tài)變量。
實例變量屬于該類的對象,必須產(chǎn)生該類對象,才能調(diào)用實例變量。
猜你喜歡: