JAVA面試中常出現(xiàn)的J2SE面試題(一)

復習下JavaSE的基礎知識吧,面試的時候可是會經(jīng)常問到,也不能說不會,只是突然問到,有的就真的忘了,哈哈,下面問題和答案都來自整理,如有錯誤之處,請指出,謝謝啦~

該好好思考下啦

**** 1.面向對象的特征有哪些方面?****

封裝 最常見的是把屬性私有化封裝在一個類里面,只能通過方法去訪問
繼承 子類繼承父類,從而繼承了父類的方法和屬性
抽象 比如一個英雄類,抽象出了name,hp這些屬性,使得開發(fā)過程中更加易于理解
多態(tài)  分操作符的多態(tài)和類的多態(tài)。 類的多態(tài)指父類引用指向子類對象,并且有繼承,有重寫。

****2. String是最基本的數(shù)據(jù)類型嗎?****

String是類類型,不是基本類型。
 基本類型有八種
 這八種基本類型分別是:
       整型 (4種)  byte、short、int、long
      字符型 (1種)char
      浮點型 (2種)float、double
      布爾型(1種) boolean

****3. int 和 Integer 有什么區(qū)別?****

int 是基本類型32位長度的整數(shù)
Integer 是類類型,是int的封裝類
int和Integer之間可以通過自動裝箱 ,自動拆箱 互相轉換

****4.String 和StringBuffer的區(qū)別?****

String是[immutable]的,其內容一旦創(chuàng)建好之后,就不可以發(fā)生改變。
StringBuffer 是可以變長的,內容也可以發(fā)生改變改變的原理是StringBuffer內部采用了字符數(shù)組存放數(shù)據(jù),在需要增加長度的時候,創(chuàng)建新的數(shù)組,并且把原來的數(shù)據(jù)復制到新的數(shù)組這樣的辦法來實現(xiàn)。
 更多細節(jié)可以參考 模仿StringBuffer的 [MyStringBuffer] 類是如何實現(xiàn)的。

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

運行時異常  又叫做非可查異常,在編譯過程中,不要求必須進行顯示捕捉
一般異常    又叫做可查異常,在編譯過程中,必須進行處理,要么捕捉,要么通過[throws] 拋出去.

****6.說出ArrayList,Vector, LinkedList的存儲性能和特性。****

先說ArrayList和Vector
兩者都繼承了抽象類AbstractList,但是Vector是[線程安全的],而ArrayList是非線程安全的

再說[ArrayList和LinkedList的區(qū)別]
ArrayList 是數(shù)組結構,所以定位很快,但是插入和刪除很慢
LinkedList 是雙向鏈表結構,所以插入和刪除很快,但是定位很慢

****7.Collection 和 Collections的區(qū)別。****

[Collection]是接口,是List和Set的父接口 

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

****8. &和&&的區(qū)別****

& 有兩個作用,分別是 [位與]和 [邏輯與]
&& 就是邏輯與作為邏輯與,
 & 和 && 分別表示[長路與和短路與]  長路與 兩側,都會被運算短路與 只要第一個是false,第二個就不進行運算了

****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     
修飾類,方法,基本類型變量,引用的時候分別有不同的意思
修飾類 表示該類不能被繼承
修飾方法 表示該方法不能被重寫
修飾基本類型變量 表示該變量只能被賦值一次
修飾引用 表示該引用只能一次指向對象的機會
finally
是用于異常處理的場面,無論是否有異常拋出,都會執(zhí)行
finalize
是Object的方法,所有類都繼承了該方法。 當一個對象滿足垃圾回收的條件,并且被回收的時候,其finalize()方法就會被調用

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

Overload是方法[重載]的意思,指的是在同一個類里面,方法名一樣,但是參數(shù)不一樣
Override是方法[重寫]的意思,指的是子類繼承了父類的某個方法后,重新又寫了一遍

Overloaded的方法是否可以改變返回值的類型?可以,重載其實本質上就是完全不同的方法,只是恰好取了相同的名字

****12. Error和Exception有什么區(qū)別?****

Error和Exception都實現(xiàn)了[Throwable]接口
Error指的是JVM層面的錯誤,比如內存不足OutOfMemoryError
[Exception ]指的是代碼邏輯的異常,比如下標越界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: 是存放基本類型(int, float, boolean 等等)、引用(對象地址)、方法調用

存去####方式###不一樣:
heap: 是自動增加大小的,所以不需要指定大小,但是存取相對較慢
stack: 是固定大小的,并且是FILO 先入后出的順序,并且存取速度比較快

****15.GC是什么? 為什么要有GC?****

GC是Garbage Collection的縮寫,即#垃圾回收
這里所謂的垃圾,指的是#那些不再被使用的對象,JVM的垃圾回收機制使得開發(fā)人員從無聊、容易犯錯的手動釋放內存資源的過程中解放出來。
開發(fā)人員可以更加專注的進行業(yè)務功能的開發(fā),而資源回收的工作交由更加專業(yè)的垃圾回收機制自動完成。

****16.short s1 = 1; s1 = s1 + 1;有什么錯?****

short s1 = 1; 這一句沒有錯誤,編譯器會自動把1這個整數(shù)處理為short.
s1 = s1 + 1; 右側的表達式會返回一個Int類型的整數(shù),再把這個int類型的整數(shù)賦給short類型的s1的時候,就會出現(xià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");
首先構造方法 new String("xyz"); 中的"xyz" 這本身就是一個字符串對象
然后 new 關鍵字一定會創(chuàng)建一個對象
所以總共創(chuàng)建了兩個String對象

****19.Java有沒有goto?****

有,goto是關鍵字,但是是#保留字,并不具備功能性

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

 接口是否可繼承接口? 
可以,比如List 就繼承了接口Collection

 抽象類是否可實現(xiàn)(implements)接口? 
可以,比如 [MouseAdapter鼠標監(jiān)聽適配器] 是一個抽象類,并且實現(xiàn)了[MouseListener]接口

抽象類是否可繼承實體類(concrete class)?
可以,所有抽象類,都繼承了Object

好啦,今天就先到這里,上面的題都是一個個知識點,如果發(fā)現(xiàn)哪個不太熟的話,可以去專門看看這塊。加油!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,740評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,265評論 0 62
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應用。 當JAVA程序違反了JA...
    八爺君閱讀 5,234評論 1 114
  • 下面的內容是對網(wǎng)上原有的Java面試題集及答案進行了全面修訂之后給出的負責任的題目和答案,原來的題目中有很多重復題...
    獨念白閱讀 1,499評論 0 3
  • 轉自:http://blog.csdn.net/jackfrued/article/details/4492194...
    王帥199207閱讀 8,807評論 3 93

友情鏈接更多精彩內容