每天八道面试题

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

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

2.JAVA中有没有goto?

答:在C/C++中goto常被用于跳出多重循环,但这会降低程序的可读性,因此在JAVA中并没有使用goto,只是作为(关键字)保留字进行留存,且goto这个(关键字)保留字没有任何作用,只是为了将来可能的扩展,防止使用goto作为程序的标识符。

3.说说&和&&的区别

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

&&还具有短路的作用,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(number == 3 && ++x>0),如果number等于3则会进行后面的自增操作,如果第一个表达式都不满足,则第二个表达式的自增则进行都不会进行。

&还可以用作位运算符,当&两边的表达式都不为boolean类型时,&表示按位与操作,即将两数转换为二进制,在通过俩俩的位数进行对比,都为1时,结果为1,否则都为0。(我们通常使用 0x0f 来与一个整数进行&运算,来获取该整数的最低 4 个 bit 位,例如,0x31 & 0x0f 的结果为 0x01

4.switch语句能否用在byte上,能否作用在long上,能否作用在String上?

在switch(expr1)中,expre1可以是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于byte,short,char都可以隐形转换为int,所以,这些类型以及这些类型的包装类型也是可以的。

Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。从 Java 5 开始,Java 中引入了枚举类型。
expr 也可以是 enum 类型。从 Java 7 开始,expr 还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。

5.a=a+b和a+=b有什么区别?

+=操作符会进行隐式自动转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型

而a=a+b则不会自动进行类型转换,例如:

short s1=1;

s1=s1+1;

此处就会报错,类型错误,因为1是int类型的数据,s1是short类型的数据,因为类型不一样就会导致运算出错。

正确的:

short s1=1;

s1+=1;

6.char型变量中能不能存储一个中文汉字?为什么?

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

7.用最有效的方法算出2乘以8等于几?

2<<3,

因为将一个数左位移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左位移3位即可,而位运算cpu是直接支持的,效率最高,所以,2乘以8等于几的最效率的方法就是2<<3。

8.使用final关键字修饰一个变量是,是引用不能变,还是引用的对象不能变?

使用 final 关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。
例如,对于如下语句:
        final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
        a=new StringBuffer("");
但是,执行如下语句则可以通过编译:
        a.append(" broken!");
有人在定义方法的参数时,可能想采用如下形式来阻止方法内部修改传进来的参数对象:
        public void method(final StringBuffer param){
        }
实际上,这是办不到的,在该方法内部仍然可以增加如下代码来修改参数对象:
        param.append("a");
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值