文章目录
1、switch 是否能作用在 byte 上,是否能作用在 long上,是否能作用在String 上?
在 Java 5 以前,switch(expr)
中,expr 只能是 byte 、short、 char、 int
。 从 Java 5
开始, Java
中引入了枚举类型,expr
也可以是 enum
类型,从 Java 7
开始, expr
还可以是字符串(String)
,但是长整型(long)
在目前所有的版本中都是不可以的。
2、用最有效率的方法计算2 乘以 8 ?
2 << 3 (左移 3 位相当于乘以 2 的 3 次方, 右移 3位相当于除以 2 的 3 次方)。
3、数组有没有 length() 方法? String有没有 Length()方法?
数组没有 length()
方法,但有 length
属性。String
有 length()
方法。JavaScript
中,获得字符串的长度是通过length
属性得到的,这一点容易和 java
混淆。
4、在 java中,如何跳出当前的多重嵌套循环?
在最外层循环前加一个标记 如 A,然后用 break A; 可以跳出多重循环。(Java 中支持带标签的break 和 continue 语句,作用有点类似于 C 和 C++ 中的 goto 语句,但是就像要避免使用 goto 一样,应该避免使用带标签的 break 和continue, 因为它不会让你的程序变得优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)
@Test
public void test07(){
ok: for (int i = 0; i < 100; i++) {
for (int i1 = 0; i1 < 100; i1++) {
for (int i2 = 0; i2 < 100; i2++) {
System.out.println(i2); // 0
break ok;
}
}
}
}
5、构造器(constructor)是否可以被重写(override)?
构造器不能被继承,因此不能被重写,但是可以被重载。