高级Java面试题精选

这是本站小编为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(){