转载

谁是代码界3%的王者?

谁是代码界3%的王者?

在Java代码界
有些陷阱外表看起来是个青铜
实际上是王者
据说97%工程师会被“秒杀”
不信?
阿里妹这有五道“基础题”
堪称5个温柔的陷阱
似是而非,雾里看花
考验真功夫的时候到了!


 

public class FloatPrimitiveTest {

public static void main(String[] args) {

float a = 1.0f - 0.9f;

float b = 0.9f - 0.8f;

if (a == b) {

System.out.println("true");

} else {

System.out.println("false");

}

}

}

0

1

这段代码输出的结果是:

A: true

B: false

C: 由硬件指令决定


 

public class FloatWrapperTest {

public static void main(String[] args) {

Float a = Float.valueOf(1.0f - 0.9f);

Float b = Float.valueOf(0.9f - 0.8f);

if (a.equals(b)) {

System.out.println("true");

} else {

System.out.println("false");

}

}

}

0

2

这段代码输出的结果是:

A: true

B: false

C: 编译出错


 

public class SwitchTest {

public static void main(String[] args) {

String param = null;

switch (param) {

case "null":

System.out.println("null");

break;

default:

System.out.println("default");

}

}

}

0

3

下列哪种说法是正确的:

A: null

B: 抛出异常

C: default


 

public class BigDecimalTest {

public static void main(String[] args) {

BigDecimal a = new BigDecimal(0.1);

System.out.println(a);

BigDecimal b = new BigDecimal("0.1");

System.out.println(b);

}

}

0

4

下列哪种说法是正确的:

A: 两种赋值的方式是一样的

B: 推荐a的赋值方式

C: 推荐b的赋值方式


 

public class LockTest {

private final static Lock lock = new ReentrantLock();


public static void main(String[] args) {

try {

lock.tryLock();

} catch (Exception e) {

e.printStackTrace();

} finally {

lock.unlock();

}

}

}

0

5

下列哪种说法是错误的:

A lock是非公平锁

B :

finally代码块不会抛出异常

C: tryLock获取锁失败则直接往下执行

想好了吗?把答案填在下面的 答题区 里哦:

偷偷告诉你一个小秘密:上面的5道题源于业界经典事实故障,经过广大开发者深度讨论提炼而成。类似问题及背后的解决思路, 将在本周三发布的《Java开发手册》华山版中首次披露! 阿里技术独家首发,敬请期待!

谁是代码界3%的王者?

关注 「阿里技术」

把握前沿技术脉搏

原文  http://mp.weixin.qq.com/s?__biz=MzIzOTU0NTQ0MA==&mid=2247490475&idx=1&sn=bee5d94253c119d49c156aba6aab4a23
正文到此结束
Loading...