这是一个高级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。
- 什么是可变参数?
- 断言的用途?
- 什么时候使用断言?
- 什么是垃圾回收?
- 用一个例子解释垃圾回收?
- 什么时候运行垃圾回收?
- 垃圾回收的最佳做法?
- 什么是初始化数据块?
- 什么是静态初始化器?
- 什么是实例初始化块?
- 什么是正则表达式?
- 什么是令牌化?
- 给出令牌化的例子?
- 如何使用扫描器类(Scanner Class)令牌化?
- 如何添加小时(hour)到一个日期对象(Date Objects)?
- 如何格式化日期对象?
- Java中日历类(Calendar Class)的用途?
- 如何在Java中获取日历类的实例?
- 解释一些日历类中的重要方法?
- 数字格式化类(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 System.out.println(example.sum(1, 4, 5));//10 //4 Arguments System.out.println(example.sum(1, 4, 5, 20));//30 //0 Arguments System.out.println(example.sum());//0 }
断言的用途?
断言是在Java 1.4中引入的。它能让你验证假设。如果断言失败(即返回false),就会抛出AssertionError(如果启用断言)。基本断言如下所示。
private int computerSimpleInterest(int principal,float interest,int years){ assert(principal>0); return 100;}
什么时候使用断言?
断言不应该用于验证输入数据到一个public方法或命令行参数。IllegalArg