1. 程式人生 > >JAVA基礎面試題(2)

JAVA基礎面試題(2)

1、== 與 equals 的區別

==在比較基本型別資料時,比較的是值;在比較記憶體中的物件地址,即是否指向同一個物件,相當於指標的操作

equals在沒有重寫方法時,在一定意義上相當於==,但我們一般都是自己重寫

 

2、throwable有哪些子類,你遇到過哪些執行時的異常

Error與Exception

NullPointerException、SQLException、IndexOutOfBoundsException、ClassCastException、IllegalArgumentException 

 

3、建立執行緒的方法

(1)繼承Thread類建立執行緒

(2)實現Runnable介面建立執行緒

(3)使用Callable和Future建立執行緒

 

4、關於i++多執行緒訪問的問題

由於是多執行緒操作,我們需要採用執行緒安全,即synchornized來限制同一時間內對同一變數的訪問,但由於i++不是原子操作,具有偶然性,會導致重複情況的出現,所以我們使用i.getAndIncrement()

 

5、對關於java中的垃圾回收機制的理解

首先我們將物件分為可達與不可達物件,其中可達是指物件中有值,而不可達是物件=null,系統的垃圾回收器將會負責回收所有不可達的物件空間。但我們需要注意的一點是在Java中,程式設計師是無權呼叫回收器的,可以通過system.gc(),通知GC執行回收。然而存在 finalize方法,它是Java提供給程式設計師用來釋放物件或者資源的方法,建議少用獲取不用。