Java面试知多少
1.谈谈&和&&的区别
1.&&是短路判断,在与其他语句一起判断时,第一个条件为假就不判断剩下的条件;
& 需要判断所有的条件
2.&是位与运算,2&3=2 //0010 &0011 = 0010 = 2;
以下是来自百度知道的答案:
&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,
整个运算结果才为true,否则,只要有一方为false,则结果为false。
&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,
例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,
所以不会出现NullPointerException如果将&&改为&,则会抛出NullPointerException异常。
If(x==33 & ++y>0) y会增长,If(x==33 && ++y>0)不会增长&还可以用作位运算符,
当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,
来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。
2.一个.Java中可以包含多少个类,不包含内部类?
我们知道一个Java的类只能有一个与文件名相同的public类名;
(可以限制:一个文件中只能有一个public类并且此public类必须与文件名相)
可以再public class之外再创建默认类型的其他类;
3.在Java中如何跳出当前的多重循环?有几种方法?
方法一: return,自动结束该循环
方法二:在循环体外加一个标号,在循环体中使用break 结束;
4.
switch 支持String类型的判断,在Java 7.0以后可以支持;
String username = "张三"; switch(username){ case "张三" syso("张三"); }
在Java7.0以后可以实现