每日一句:没有一劳永逸的幸福,只有先苦后甜的努力!加油!

            java应届生或自学初学者笔试面试题目总结,希望对大家有帮助,题目来自自己学习总结和老师讲解,网络资源,书籍资料。敲出来大家看,每次更新10+道题目,希望大家能找到一份好工作。

第一部分:基础部分

    基础部分的包括:基本语法,类似相关的语法,内部类、继承、异常、线程、集合、IO、虚拟机、其他。

1 一个“.Java”源文件中是否可以包含多个类(不是内部类)?有什么限制?
可以有多个,但是只能有一个public的类,并且public的类名必须与文件名一致。

2 Java有没有goto?
goto属于Java中的保留字,现在没有使用。

3 说说&和&&的区别
&和&&都可以做逻辑与运算符,表示逻辑与(and),当运算符两边表达式的结果都为true时整个运算结果才为true,否则,只要有一边为false,则最终结果为false。
&&具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str != null && !str.equals(“”))表达式,当str 为null时,后面的表达式不会执行,所以不会抛出异常,如果将&&改为&,则会抛出NullPointerException异常。对于if(x==3 & ++y>0)表达式,若x==3不成立,y会自加,而对于if(x==3 && ++y)表达式,如果x==3不成立,则y不会自增。
&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如:0x31 & 0x0f的结果为0x01。
备注:这道题先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。

4 在Java中如何跳出当前的多重嵌套循环?
在Java中要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句,即可跳出外层循环。例如:

ok:
for(int i=0; i<10; i++){
    for(int j=0; j<10; j++){
        System.out.println("i=" + i + ",j=" + j);
        if(j == 5) break ok;
    }
}

个人并不喜欢用标号这种方式,而是让外层循环条件表达式的结果可以受到内层循环体代码的控制,例如,要在二维数组中查找到某个数字:

int arr[][] = {{1,2,3}, {4,5,6,7}, {9}};
boolean found = false;
for(int i=0; i