糯米文學吧

位置:首頁 > 計算機 > java語言

Java面試題(精選)

java語言2.29W

引導語:面試Java崗位,就要做好充分的應試準備,以下是小編整理的Java面試題(精選),歡迎參考閲讀!

Java面試題(精選)

  1、Collection 和 Collections的區別?

Collection是集合的根接口,其下有set及list

Collections是集合的算法。

  2、Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?用contains來區分是否有重複的對象。還是都不用?

在比較時先調用hashCode方法,如果不相同,證明不相等。

如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。

==:主要用在基本數據類型及引用

equals:主要是對象或對象引用的比較。

集合中是否包含某一個元素用contains來判斷。

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

List,set繼承於Collection

Map沒有繼承於Collection,其相對是獨立的。

屬於Collection類型的對象,可以通過構造函數將一個集合構造成另外一個集合。

 4、面向對象的特徵有哪些方面?

1.抽象:

找共性,將共有的屬性、方法放到父類中

2.繼承:

子類繼承於父類,具有父類的所有屬性與方法,可以重用,也可以覆蓋。

3.封裝:

一個類包括多個屬性及方法。

4. 多態性:

  5、String是最基本的數據類型嗎?

基本數據類型包括byte、int、char、long、float、double、boolean和short。

ng類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類

  6、int 和 Integer 有什麼區別?

int 是基本數據類型,不是對象,佔一個內存空間,沒有方法。與其同類的有long,char,doble

Integer是封裝類,具有方法及屬性。與其同類的有Long,t

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

運行時異常:JVM拋出的異常,代碼中不用處理。

一般異常:用户拋出的異常,如果用throws 聲明瞭,調用這個方法的代碼必須對其處理。

  8、&和&&的區別?

&:與: 左邊若為false右邊還執行。

&&:短路與,左邊若為false右邊不執行。

  9、final, finally, finalize的區別?

final 用於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

finally是異常處理語句結構的一部分,表示總是執行。

finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。

  10、heap和stack有什麼區別?

棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照後進先出的方式進行處理。堆是棧的一個組成元素

  11、Static Nested Class 和 Inner Class的不同?

Static Nested Class是被聲明為靜態(static)的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化後才能實例化。

  12、GC是什麼? 為什麼要有GC?

GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的'顯示操作方法。

  13、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換類型)

short s1 = 1; s1 += 1;(可以正確編譯)

  14、d(11.5)等於多少? d(-11.5)等於多少?

d(11.5)==12

d(-11.5)==-11

round方法返回與參數最接近的長整數,參數加1/2後求其floor.

  15、Java有沒有goto?

java中的保留字,現在沒有在java中使用。

  16、給出一個你最常見到的runtime exception

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

一般異常:

IOException

FileNotFoundException

SqlException

  17、數組有沒有length()這個方法? String有沒有length()這個方法?

數組沒有length()這個方法,有length這個屬性

String有length()這個方法.

  18、構造器Constructor是否可被override?

構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。

  19、是否可以繼承String類?

String類是final類故不可以繼承。

  20、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。

  21、try {}裏有一個return語句,那麼緊跟在這個try後的finally {}裏的code會不會被執行,什麼時候被執行,在return前還是後?

會執行,在return前執行。

  22、兩個對象值相同(ls(y) == true),但卻可有不同的hash code,這句話對不對?

不對,有相同的 hash code

這是java語言的定義:

1) 對象相等則hashCode一定相等;

2) hashCode相等對象未必相等

  23、四種會話跟蹤技術?

Cookie

Session

Hidden

url 重寫

  24、寫一個Singleton出來。

Singleton模式主要作用是保證在Java應用程序中,一個類只有一個實例存在。

一般Singleton模式通常有幾種種形式:

第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。

public class Singleton {

private Singleton(){}

//在自己內部定義自己一個實例,是不是很奇怪?

//注意這是private 只供內部調用

private static Singleton instance = new Singleton();

//這裏提供了一個供外部訪問本class的靜態方法,可以直接訪問

public static Singleton getInstance() {

return instance;

}

}

第二種形式:

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance() {

//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次

//使用時生成實例,提高了效率!

if (instance==null)

instance=new Singleton();

return instance; }

}

其他形式:

定義一個類,它的構造函數為private的,所有方法為static的。

一般認為第一種形式要更加安全些

  25、Java中的異常處理機制的簡單原理和應用。

原理: 有錯直接轉到異常處理部分或向上拋出。

應用:JAVA的異常就是錯誤,有兩種,一種是運行時,編碼可以不用捕捉。一種是一般異常,如果throws聲明瞭,必須進行處理。

  26、描述一下JVM加載class文件的原理機制?

JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader 是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類。

標籤:面試題 JAVA 精選