Java面试宝典总结

Java基础部分

1.一个“.java”源文件是否可以包括多个类(内部类),有什么限制?

可以有多个类,但只能有一个public类,并且public的类名必须与文件名相一致。

2.&与&&的区别

&与&&都可以用作逻辑与的运算符,表示逻辑与and,当运算符两边的表达式都为true时,整个运算的结果才为true,否则只要一方为false,则结果为false。

&&有短路功能,即如果第一个表达式为false,则不计算第二个表达式。

当&操作符两边的表达式不是boolean类型时,&表示按位与操作,&通常使用0x0f来与一个整数进行&操作,来获取整数的最低4个bit位。

3.在Java中如何跳出当前的多层嵌套循环

让外层的循环条件表达式的结果可以受到里层循环体代码的控制,例如,要在二维数组中查找某个数字。

int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};
boolean found = false;
for(int i = 0; i < arr.length && !found; i++ ){
    for(int j = 0; j < arr[i].length; j++){
        System.out.println("i = " + i + ", j = " + j);
        if(arr[i][j] = 5){
            found = true;
            break;
        }
    }
}

4.short s1 = 1,其中s1 = s1 + 1与 s1 += 1

对于short s1 = 1; s1 = s1 + 1;由于s1 + 1运算时会自动提升表达式的类型,所以结果是int型,在复制给short类型时,编译器将报告需要强制转换类型的错误。对于s1 += 1;由于+=是Java语言规定的运算符,Java编译器会对它进行特殊处理,因此可以正常编译。

5.char类型能不能存储一个中文汉字

char型变量是用来存储Unicode编码的字符串,Unicode编码字符集中包含了汉字,所以char型变量中可以存储汉字,不过如果某个特殊汉字没有被包含在Unicode编码字符集中,那么这个char型变量就不能存储这个特殊汉字。补充说明:Unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

6.用最有效率的方法算出2乘以8等于多少

2 << 3;位运算,因为将一个数左移n位,就相当于乘以了2的n次方

7.设计一个一百亿的计算器

发表评论

电子邮件地址不会被公开。 必填项已用*标注