java面試的時候大家都遇到過什麼樣的問題
接下來就為大家介紹下從各方收集到的java面試的問題吧
第一
談談final
finally
finalize的區別
final 修飾符(關鍵字)如果一個類被聲明為final
意味著它不能再派生出新的子類
不能作為父類被繼承
因此一個類不能既被聲明為abstract的
又被聲明為final的
將變量或方法聲明為final
可以保證它們在使用中不被改變
被聲明為final的變量必須在聲明時給定初值
而在以後的引用中只能讀取
不可修改
被聲明為final的方法也同樣只能使用
不能重載 finally 再異常處理時提供finally 塊來執行任何清除操作
如果拋出一個異常
那麼相匹配的catch 子句就會執行
然後控制就會進入finally 塊(如果有的話)
finalize?方法名
Java 技術允許使用finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作
這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的
它是在Object 類中定義的
因此所有的類都繼承了它
子類覆蓋finalize() 方法以整理系統資源或者執行其他清理工作
finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的
第二
Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類
是否可以implements(實現)interface(接口)? 匿名的內部類是沒有名字的內部類
不能extends(繼承) 其它類
但一個內部類可以作為一個接口
由另一個內部類實現
第三
Static Nested Class 和Inner Class的不同
說得越多越好(面試題有的很籠統)
Nested Class (一般是C++的說法)
Inner Class (一般是JAVA的說法)
Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上
具體可見;amp;page=
注
靜態內部類(Inner Class)意味著
創建一個static內部類的對象
不需要一個外部類對象
不能從一個static內部類的一個對象訪問一個外部類對象
第四
&和&&的區別
&是位運算符
&&是布爾邏輯運算符
第五
HashMap和Hashtable的區別
都屬於Map接口的類
實現了將惟一鍵映射到特定的值上
HashMap 類沒有分類或者排序
它允許一個null 鍵和多個null 值
Hashtable 類似於HashMap
但是不允許null 鍵和null 值
它也比HashMap 慢
因為它是同步的
第六
Collection 和Collections的區別
Collections是個java
util下的類
它包含有各種有關集合操作的靜態方法
Collection是個java
util下的接口
它是各種集合結構的父接口
第七
什麼時候用assert
斷言是一個包含布爾表達式的語句
在執行這個語句時假定該表達式為true
如果表達式計算為false
那麼系統會報告一個AssertionError
它用於調試目的
assert(a >
)
// throws an AssertionError if a <=
斷言可以有兩種形式
assert Expression
; assert Expression
: Expression
; Expression
應該總是產生一個布爾值
Expression
可以是得出一個值的任意表達式
這個值用於生成顯示更多調試信息的String 消息
斷言在默認情況下是禁用的
要在編譯時啟用斷言
需要使用source
標記
javac
source
Test
java 要在運行時啟用斷言
可使用
enableassertions 或者
ea 標記
要在運行時選擇禁用斷言
可使用
da 或者
disableassertions 標記
要系統類中啟用斷言
可使用
esa 或者
dsa 標記
還可以在包的基礎上啟用或者禁用斷言
可以在預計正常情況下不會到達的任何位置上放置斷言
斷言可以用於驗證傳遞給私有方法的參數
不過
斷言不應該用於驗證傳遞給公有方法的參數
因為不管是否啟用了斷言
公有方法都必須檢查其參數
不過
既可以在公有方法中
也可以在非公有方法中利用斷言測試後置條件
另外
斷言不應該以任何方式改變程序的狀態
第八
GC是什麼? 為什麼要有GC? (基礎)
GC是垃圾收集器
Java 程序員不用擔心內存管理
因為垃圾收集器會自動進行管理
要請求垃圾收集
可以調用下面的方法之一
System
gc() Runtime
getRuntime()
gc()
第九
String s = new String(
xyz
)
創建了幾個String Object? 兩個對象
一個是
xyx
一個是指向
xyx
的引用對象s
第十
Math
round(
)等於多少?Math
round(
)等於多少? Math
round(
)返回(long)
Math
round(
)返回(long)
;
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26809.html