81、Java程序中创建新的类对象,使用关键字new,回收无用的类对象使用关键字free正确么?
答:Java程序中创建新的类对象,使用关键字new是正确的; 回收无用的类对象使用关键字free是错误的.
82、Class类的getDeclaredFields()方法与getFields()的区别?
答:
- getDeclaredFields(): 可以获取所有本类自己声明的方法, 不能获取继承的方法
- getFields(): 只能获取所有public声明的方法, 包括继承的方法
83、在switch和if-else语句之间进行选取,当控制选择的条件不仅仅依赖于一个x时,应该使用switch结构;正确么?
答:不正确。
通常情况下,进行比较判断的处理,switch 和if-else可以互相转换来写;if-else作用的范围比switch-case作用范围要大,但是当switch-case和if-else都可以用的情况下,通常推荐使用switch-case。
比如:
switch (ch) {
case 'a':
System.out.println("A");
break;
case 'b':
System.out.println("B");
break;
case 'c':
System.out.println("C");
break;
case 'd':
System.out.println("D");
break;
case 'e':
System.out.println("E");
break;
default:
System.out.println("other");
break;
}
换为if-else
if (ch == 'a') {
System.out.println("A");
} else if (ch == 'b') {
System.out.println('B');
} else if (ch == 'c') {
System.out.println("C");
} else if (ch == 'd') {
System.out.println("D");
} else if (ch == 'e') {
System.out.println("E");
} else {
System.out.println("Other");
}
84、使用final关键字修饰符一个变量时,是引用不能变,还是引用的对象不能变?
final修饰基本类型变量,其值不能改变。
但是final修饰引用类型变量,栈内存中的引用不能改变,但是所指向的堆内存中的对象的属性值仍旧可以改变。
例如:
class Test {
public static void main(String[] args) {
final Dog dog = new Dog("欧欧");
dog.name = "美美";//正确
dog = new Dog("亚亚");//错误
}
}
85、请解释以下常用正则含义:\d,\D,\s,.,*,?,|,[0-9]{6},\d+
\d:匹配一个数字字符。等价于[0-9]
\D:匹配一个非数字字符。等价于[^0-9]
\s:匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]
. :匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
*:匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。
+:匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。
|:将两个匹配条件进行逻辑“或”(Or)运算
[0-9]{6}:匹配连续6个0-9之间的数字
\d+:匹配至少一个0-9之间的数字