请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 130|回复: 0

Java面试题集9(核心部分)——《疯狂Java讲义》附赠

[复制链接]
发表于 2018-5-13 22:24:44 | 显示全部楼层 |阅读模式

本文随《疯狂Java讲义》光盘附赠
京东购买地址:https://item.jd.com/12261787.html
当当购买地址:http://product.dangdang.com/23532609.html


17、用最有效率的方法算出2乘以8等于几?
2 << 3
因为将一个数左移n位,就相当于乘以了2的n次方,那么,一个数乘以8只要将其左移3位即可,而位运算CPU直接支持的,效率最高,所以,2乘以8等于几的最效率的方法是2 << 3。
但需要注意的是,如果这个数字本身已经很大,比如本身已经是2的30次方了,此时再用这种位移运算就可能导致“溢出”,这样就得不到正确结果了。
18、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuilder a = new StringBuilder ("immutable");
执行如下语句将报告编译错误:
a = new StringBuilder ("");
但如下语句则是完全正确的
a.append("fkjava.org");
有人希望在定义方法的形参时,通过final修饰符来阻止方法内部修改传进来的实参:
public void method(final StringBuilder param)
{
}
实际上这没有用,在该方法内部仍然可以增加如下代码来修改实参对象:
param.append("fkjava.org");


您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2018-8-15 09:44 , Processed in 0.163245 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表