高級Java面試題精選
這是本站小編為Java開發人員收集整理的面試中經常容易遇到的問題,相信你瞭解和掌握之後一定會有所提高。讓我們一起來看看吧。
1. 什麼是可變參數?
2. 斷言的用途?
3. 什麼時候使用斷言?
4. 什麼是垃圾回收?
5. 用一個例子解釋垃圾回收?
6. 什麼時候運行垃圾回收?
7. 垃圾回收的最佳做法?
8. 什麼是初始化數據塊?
9. 什麼是靜態初始化器?
10.什麼是實例初始化塊?
11.什麼是正則表達式?
12.什麼是令牌化?
13.給出令牌化的例子?
14.如何使用掃描器類(Scanner Class)令牌化?
15.如何添加小時(hour)到一個日期對象(Date Objects)?
16.如何格式化日期對象?
中日曆類(Calendar Class)的用途?
18.如何在Java中獲取日曆類的實例?
19.解釋一些日曆類中的重要方法?
20.數字格式化類(Number Format Class)的用途?
什麼是可變參數?
可變參數允許調用參數數量不同的方法。請看下面例子中的求和方法。此方法可以調用1個int參數,或2個int參數,或多個int參數。
//int(type) followed ... (three dot's) is syntax of a variable argument.
public int sum(int... numbers) {
//inside the method a variable argument is similar to an array.
//number can be treated as if it is declared as int[] numbers;
int sum = 0;
for (int number: numbers) {
sum += number;
}
return sum;
}
public static void main(String[] args) {
VariableArgumentExamples example = new VariableArgumentExamples();
//3 Arguments
tln((1, 4, 5));//10
//4 Arguments
tln((1, 4, 5, 20));//30
//0 Arguments
tln(());//0
}
斷言的用途?
斷言是在Java 1.4中引入的。它能讓你驗證假設。如果斷言失敗(即返回false),就會拋出AssertionError(如果啟用斷言)。基本斷言如下所示。
private int computerSimpleInterest(int principal,float interest,int years){
assert(principal>0);
return 100;
}
什麼時候使用斷言?
斷言不應該用於驗證輸入數據到一個public方法或命令行參數。IllegalArgumentException會是一個更好的選擇。在public方法中,只用斷言來檢查它們根本不應該發生的情況。
什麼是垃圾回收?
垃圾回收是Java中自動內存管理的另一種叫法。垃圾回收的目的是為程序保持儘可能多的可用堆(heap)。 JVM會刪除堆上不再需要從堆引用的對象。
用一個例子解釋垃圾回收?
比方説,下面這個方法就會從函數調用。
void method(){