最全Java面試題(一)面試時這些問題你早晚都會遇到

示例 1 :

面向?qū)ο蟮奶卣饔心男┓矫妫?/p>

封裝

最常見的是把屬性私有化封裝在一個類里面驴党,只能通過方法去訪問

繼承

子類繼承父類,從而繼承了父類的方法和屬性

抽象

比如一個英雄類丧慈,抽象出了name,hp這些屬性,使得開發(fā)過程中更加易于理解

多態(tài)

多態(tài)分操作符的多態(tài)和類的多態(tài)渐溶。類的多態(tài)指父類引用指向子類對象,并且有繼承灾而,有重寫。

示例 2 :

String是最基本的數(shù)據(jù)類型嗎扳剿?

String是類類型旁趟,不是基本類型。

基本類型有八種

這八種基本類型分別是:

整型(4種)

字符型(1種)

浮點型(2種)

布爾型(1種)

示例 3 :

int 和 Integer 有什么區(qū)別庇绽?

int 是基本類型32位長度的整數(shù)

Integer 是類類型锡搜,是int的封裝類

int和Integer之間可以通過自動裝箱自動拆箱互相轉(zhuǎn)換、

例 4 :

String 和StringBuffer的區(qū)別瞧掺?

請先登錄String是immutable的,其內(nèi)容一旦創(chuàng)建好之后耕餐,就不可以發(fā)生改變。

StringBuffer 是可以變長的辟狈,內(nèi)容也可以發(fā)生改變

改變的原理是StringBuffer內(nèi)部采用了字符數(shù)組存放數(shù)據(jù)肠缔,在需要增加長度的時候夏跷,創(chuàng)建新的數(shù)組,并且把原來的數(shù)據(jù)復(fù)制到新的數(shù)組這樣的辦法來實現(xiàn)明未。

更多細(xì)節(jié)可以參考模仿StringBuffer的MyStringBuffer類是如何實現(xiàn)的槽华。

示例 5 :

運行時異常與一般異常有何異同?

運行時異常又叫做非可查異常趟妥,在編譯過程中猫态,不要求必須進(jìn)行顯示捕捉

一般異常又叫做可查異常,在編譯過程中披摄,必須進(jìn)行處理亲雪,要么捕捉,要么通過throws拋出去.

示例 6 :

說出ArrayList,Vector, LinkedList的存儲性能和特性疚膊。

先說ArrayList和Vector

兩者都繼承了抽象類AbstractList匆光,但是Vector是線程安全的,而ArrayList是非線程安全的

再說ArrayList和LinkedList的區(qū)別

ArrayList 是數(shù)組結(jié)構(gòu)酿联,所以定位很快终息,但是插入和刪除很慢

LinkedList 是雙向鏈表結(jié)構(gòu),所以插入和刪除很快贞让,但是定位很慢

示例 7 :

Collection 和 Collections的區(qū)別周崭。

首先不要說成了一個是單數(shù),一個是復(fù)數(shù)喳张。续镇。。

Collection是接口销部,是List和Set的父接口

Collections是工具類摸航,提供了排序,混淆等等很多實用方法

示例 8 :

&和&&的區(qū)別請先登錄

& 有兩個作用舅桩,分別是位與和邏輯與

&& 就是邏輯與

作為邏輯與酱虎, & 和 && 分別表示長路與和短路與

長路與兩側(cè),都會被運算

短路與只要第一個是false擂涛,第二個就不進(jìn)行運算了

示例 9 :

HashMap和Hashtable的區(qū)別

HashMap和Hashtable都實現(xiàn)了Map接口读串,都是鍵值對保存數(shù)據(jù)的方式

區(qū)別1:

HashMap可以存放 null

Hashtable不能存放null

區(qū)別2:

HashMap不是線程安全的類

Hashtable是線程安全的類

示例 10 :

final, finally, finalize的區(qū)別

final

final修飾類,方法撒妈,基本類型變量恢暖,引用的時候分別有不同的意思

修飾類表示該類不能被繼承

修飾方法表示該方法不能被重寫

修飾基本類型變量表示該變量只能被賦值一次

修飾引用表示該引用只能一次指向?qū)ο蟮臋C會

finally

finally 是用于異常處理的場面,無論是否有異常拋出狰右,都會執(zhí)行

finalize

finalize是Object的方法杰捂,所有類都繼承了該方法。當(dāng)一個對象滿足垃圾回收的條件棋蚌,并且被回收的時候嫁佳,其finalize()方法就會被調(diào)用

示例 11 :

Overload和Override的區(qū)別脱拼,即重載和重寫的區(qū)別。 Overloaded的方法是否可以改變返回值的類型?

Overload是方法重載的意思,指的是在同一個類里面,方法名一樣愕提,但是參數(shù)不一樣

Override是方法重寫的意思证膨,指的是子類繼承了父類的某個方法后不见,重新又寫了一遍

Overloaded的方法是否可以改變返回值的類型?

可以刷晋,重載其實本質(zhì)上就是完全不同的方法,只是恰好取了相同的名字

示例 12 :

Error和Exception有什么區(qū)別? 請先登錄

Error和Exception都實現(xiàn)了Throwable接口

Error只的是JVM層面的錯誤,比如內(nèi)存不足OutOfMemoryError

Exception 只的是代碼邏輯的異常,比如下標(biāo)越界OutOfIndexException

示例 13 :

abstract class和interface有什么區(qū)別? 請先登錄

abstract class 抽象類和interface接口的區(qū)別

使用方式:

抽象類只能夠通過繼承被使用

接口必須通過實現(xiàn)被使用

實現(xiàn)方法:

抽象類不僅可以提供抽象方法,也可以提供實現(xiàn)方法

接口只能提供抽象方法發(fā),不能提供實現(xiàn)方法。但是在JAVA8版本開始语淘,接口可以可以提供實現(xiàn)方法了,前提是要在方法前加一個default修飾符

示例 14 :

heap和stack有什么區(qū)別

heap: 堆

stack: 棧 (在一些書籍里,會被翻譯為堆棧溯泣,實際上指的就是單純的這個棧)

存放的內(nèi)容不一樣:

heap: 是存放對象的

stack: 是存放基本類型(int, float, boolean 等等)虐秋、引用(對象地址)、方法調(diào)用

存去方式不一樣:

heap: 是自動增加大小的垃沦,所以不需要指定大小客给,但是存取相對較慢

stack: 是固定大小的,并且是FILO 先入后出的順序肢簿,并且存取速度比較快

示例 15 :

GC是什么? 為什么要有GC?

GC是Garbage Collection的縮寫靶剑,即垃圾回收

這里所謂的垃圾,指的是那些不再被使用的對象池充,JVM的垃圾回收機制使得開發(fā)人員從無聊桩引、容易犯錯的手動釋放內(nèi)存資源的過程中解放出來。

開發(fā)人員可以更加專注的進(jìn)行業(yè)務(wù)功能的開發(fā)收夸,而資源回收的工作交由更加專業(yè)的垃圾回收機制自動完成坑匠。

示例 16 :

short s1 = 1; s1 = s1 + 1;有什么錯?

short s1 = 1; 這一句沒有錯誤,編譯器會自動把1這個整數(shù)處理為short.

s1 = s1 + 1; 右側(cè)的表達(dá)式會返回一個Int類型的整數(shù)卧惜,再把這個int類型的整數(shù)賦給short類型的s1的時候厘灼,就會出現(xiàn)強制轉(zhuǎn)換錯誤

示例 17 :

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round 的意思是+0.5 取整數(shù)

所以 Math.round(11.5) 即 11.5+0.5 = 12

Math.round(-11.5) 即 -11.5+0.5 = -11

示例 18 :

String s = new String("xyz");創(chuàng)建了幾個String Object?

String s = new String("xyz");

首先構(gòu)造方法 new String("xyz"); 中的"xyz" 這本身就是一個字符串對象

然后 new 關(guān)鍵字一定會創(chuàng)建一個對象

所以總共創(chuàng)建了兩個String對象

示例 19 :

Java有沒有g(shù)oto?

有,goto是關(guān)鍵字夹纫,但是是保留字,并不具備功能性

示例 20 :

接口是否可繼承接口? 抽象類是否可實現(xiàn)(implements)接口? 抽象類是否可繼承實體類(concrete class)设凹?

接口是否可繼承接口?

可以舰讹,比如List 就繼承了接口Collection

抽象類是否可實現(xiàn)(implements)接口?

可以,比如MouseAdapter鼠標(biāo)監(jiān)聽適配器是一個抽象類闪朱,并且實現(xiàn)了MouseListener接口

抽象類是否可繼承實體類(concrete class)月匣?

可以,所有抽象類监透,都繼承了Object

示例 21 :

List, Set, Map是否繼承自Collection接口?

List 和 Set 繼承了Collection接口

但是Map和Collection之間沒有繼承關(guān)系桶错,因為一個是鍵值對容器,一個是單值容器胀蛮,無法兼容

示例 22 :

abstract的method是否可同時是static,是否可同時是synchronized院刁?

abstract的method是否可同時是static,是否可同時是synchronized?

都不可以

示例 23 :

數(shù)組有沒有l(wèi)ength()這個方法? String有沒有l(wèi)ength()這個方法粪狼?

數(shù)組獲取長度的手段是 .length 屬性

String獲取長度的手段是 length()方法

集合獲取長度的手段是 size()方法

文件獲取長度的手段是 length()方法

示例 24 :

Set里的元素是不能重復(fù)的退腥,那么用什么方法來區(qū)分重復(fù)與否呢?

以HashSet為例,判斷重復(fù)的邏輯是:

1. 首先看hashcode是否相同再榄,如果不同狡刘,就是不重復(fù)的

2. 如果hashcode一樣,再比較equals困鸥,如果不同嗅蔬,就是不重復(fù)的,否則就是重復(fù)的疾就。

更多關(guān)于hashcode的原理澜术,參考Java HashCode原理詳解

示例 25 :

構(gòu)造器Constructor是否可被override?是否可以繼承String類?

子類不能繼承父類的構(gòu)造方法,所以就不存在重寫父類的構(gòu)造方法猬腰。

String是final修飾的鸟废,所以不能夠被繼承

學(xué)習(xí)Java的同學(xué)注意了!9煤伞盒延!
學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群346942462鼠冕,我們一起學(xué)Java添寺!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市懈费,隨后出現(xiàn)的幾起案子畦贸,更是在濱河造成了極大的恐慌,老刑警劉巖楞捂,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薄坏,死亡現(xiàn)場離奇詭異,居然都是意外死亡寨闹,警方通過查閱死者的電腦和手機胶坠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來繁堡,“玉大人沈善,你說我怎么就攤上這事⊥痔悖” “怎么了闻牡?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绳矩。 經(jīng)常有香客問我罩润,道長,這世上最難降的妖魔是什么翼馆? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任割以,我火速辦了婚禮,結(jié)果婚禮上应媚,老公的妹妹穿的比我還像新娘严沥。我一直安慰自己,他們只是感情好中姜,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布消玄。 她就那樣靜靜地躺著,像睡著了一般丢胚。 火紅的嫁衣襯著肌膚如雪翩瓜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天嗜桌,我揣著相機與錄音奥溺,去河邊找鬼。 笑死骨宠,一個胖子當(dāng)著我的面吹牛浮定,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播层亿,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼桦卒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了匿又?” 一聲冷哼從身側(cè)響起方灾,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裕偿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體洞慎,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年嘿棘,在試婚紗的時候發(fā)現(xiàn)自己被綠了劲腿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸟妙,死狀恐怖焦人,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情重父,我是刑警寧澤花椭,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站房午,受9級特大地震影響矿辽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜歪沃,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一嗦锐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧沪曙,春花似錦奕污、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缘眶,卻和暖如春嘱根,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背巷懈。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工该抒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人顶燕。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓凑保,卻偏偏與公主長得像,于是被迫代替她去往敵國和親涌攻。 傳聞我的和親對象是個殘疾皇子欧引,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容