更新時間:2019-04-09 08:56:17 來源:動力節點 瀏覽7193次
想讓面試官在短短的幾十分鐘內認可你的能力?想在最短的時間內收獲Java技術棧最核心的知識點?想要更全面更深入的了解Java技術?這篇Java常見面試題文章給你想要的所有答案。
1.集合的作用是什么?
數據的傳送增、刪、改、查、constainsAll,可以存放不同類型的對象。
2.集合的通用方法有那些?通用方法是什么?(操作)
集合List的遍歷方法有:
Collection的通用方法有:
3.說出ArrayList,Vector,LinkedList的存儲性能和特性HashMap和Hashtable的區別
HashMap與Hashtable都實現的Map接口,HashTable線程安全,HashMap線程不安全。
4.Collection和Collections的區別。
Collection是集合的根接口,其下有set及list
Collections是集合的算法。
5.Set里的元素是不能重復的,那么用什么方法來區分重復與否呢?是用==還是equals()?它們有何區別?用contains來區分是否有重復的對象,還是都不用。
在比較時先調用hashCode方法,如果不相同,證明不相等。
如果相同,再調用equals方法,如果equals方法相同,證明相等,不相同,證明不相等。
==:主要用在基本數據類型及引用
Equals:主要是對象或對象引用的比較。
集合中是否包含某一個元素用contains來判斷。
6.List,Set,Map是否繼承自Collection接口?
List,set繼承于Collection
Map沒有繼承于Collection,其相對是獨立的。
屬于Collection類型的對象,可以通過構造函數將一個集合構造成另外一個集合。
7.面向對象的特征有哪些方面?
8.String是最基本的數據類型嗎?
基本數據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類
9.int和Integer有什么區別?
Int是基本數據類型,不是對象,占一個內存空間,沒有方法。與其同類的有long,char,doble
Integer是封裝類,具有方法及屬性。與其同類的有Long,Double.Float
10.運行時異常與一般異常有何異同?
運行時異常:javaJVM拋出的異常,代碼中不用處理。
一般異常:用戶拋出的異常,如果用throws聲明了,調用這個方法的代碼必須對其處理。
11.&和&&的區別?
&:與:左邊若為false右邊還執行。
&&:短路與,左邊若為false右邊不執行。
12.final,finally,finalize的區別?
final用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結構的一部分,表示總是執行。
finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,
可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。
算符可以用來決定某對象的類是否實現了接口。
13.heap和stack有什么區別?
棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進先出的方式進行處理。
堆是棧的一個組成元素
14.StaticNestedClass和InnerClass的不同?
StaticNestedClass是被聲明為靜態(static)的內部類,它可以不依賴于外部類實例被實例化。而通常的內部類需要在外部類實例化后才能實例化。
15.什么時候用assert?
assertion(斷言)在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值為true;如果該值為false,說明程序已經處于不正確的狀態下,系統將給出警告或退出。一般來說,assertion用于保證程序最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啟。為了提高性能,在軟件發布后,assertion檢查通常是關閉的。
16.GC是什么?為什么要有GC?
GC是垃圾收集的意思(GabageCollection),內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。
17.shorts1=1;s1=s1+1;有什么錯?shorts1=1;s1+=1;有什么錯?
shorts1=1;s1=s1+1;(s1+1運算結果是int型,需要強制轉換類型)shorts1=1;s1+=1;(可以正確編譯)
18.Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數最接近的長整數,參數加1/2后求其floor.
19.Java有沒有goto?
java中的保留字,現在沒有在java中使用。
20.給我一個你最常見到的runtimeexception
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
21.接口是否可繼承接口?抽象類是否可實現(implements)接口?抽象類是否可繼承實體類(concreteclass)?
接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承實體類。
22.abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?
都不能
23.數組有沒有length()這個方法?String有沒有length()這個方法?
數組沒有length()這個方法,有length這個屬性
String有length()這個方法.
24.構造器Constructor是否可被override?
構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
25.是否可以繼承String類?
String類是final類故不可以繼承。
26.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個整數表達式。因此傳遞給switch和case語句的參數應
該是int、short、char或者byte。long,string都不能作用于swtich。
27.try{}里有一個return語句,那么緊跟在這個try后的finally{}里的code會不會被執行,什么時候被執行,在return前還是后?
會執行,在return前執行。
28.兩個對象值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對不對?
對,有相同的hashcode。
29.當一個對象被當作參數傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結果,那么這里到底是值傳遞還是引用傳遞?
是引用傳遞
基本數據類型:值
對象:引用
30.編程題:寫一個Singleton出來。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
一般Singleton模式通常有幾種種形式:
第一種形式:定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
publicclassSingleton{
privateSingleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private只供內部調用
privatestaticSingletoninstance=newSingleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
publicstaticSingletongetInstance(){
returninstance;
}
}
第二種形式:
publicclassSingleton{
privatestaticSingletoninstance=null;
publicstaticsynchronizedSingletongetInstance(){
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if(instance==null)
instance=newSingleton();
returninstance;}
}
其他形式:
定義一個類,它的構造函數為private的,所有方法為static的。
一般認為第一種形式要更加安全些
30.Java中的異常處理機制的簡單原理和應用。
31.垃圾回收的優點和原理。并考慮2種回收機制。
優點:程序員不用管內存,jvm自動完成,開發方便。運行優先非常低,程序無法清楚實例什么時候被消毀。
32.描述一下JVM加載class文件的原理機制?
JVM中類的裝載是由ClassLoader和它的子類來實現的,JavaClassLoader是一個重要的Java運行時系統組件。它負責在運行時查找和裝入類文件的類。
34.char型變量中能不能存貯一個中文漢字?為什么?
能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節,所以放一個中文是沒問題的
相關Java面試題推薦
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習