谁是代码界3%的王者?

论坛 期权论坛 期权     
阿里技术   2019-6-29 18:52   2400   0


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

  1. public class FloatPrimitiveTest {
复制代码
  1.     public static void main(String[] args) {
复制代码
  1.         float a = 1.0f - 0.9f;
复制代码
  1.         float b = 0.9f - 0.8f;
复制代码
  1.         if (a == b) {
复制代码
  1.             System.out.println("true");
复制代码
  1.         } else {
复制代码
  1.             System.out.println("false");
复制代码
  1.         }
复制代码
  1.     }
复制代码
  1. }
复制代码
01这段代码输出的结果是:A: true
B: false
C: 由硬件指令决定

  1. public class FloatWrapperTest {
复制代码
  1.     public static void main(String[] args) {
复制代码
  1.         Float a = Float.valueOf(1.0f - 0.9f);
复制代码
  1.         Float b = Float.valueOf(0.9f - 0.8f);
复制代码
  1.         if (a.equals(b)) {
复制代码
  1.             System.out.println("true");
复制代码
  1.         } else {
复制代码
  1.             System.out.println("false");
复制代码
  1.         }
复制代码
  1.     }
复制代码
  1. }
复制代码
02这段代码输出的结果是:A: true
B: false
C: 编译出错

  1. public class SwitchTest {
复制代码
  1.     public static void main(String[] args) {
复制代码
  1.         String param = null;
复制代码
  1.         switch (param) {
复制代码
  1.             case "null":
复制代码
  1.                 System.out.println("null");
复制代码
  1.                 break;
复制代码
  1.             default:
复制代码
  1.                 System.out.println("default");
复制代码
  1.         }
复制代码
  1.     }
复制代码
  1. }
复制代码
03下列哪种说法是正确的:A: null
B: 抛出异常
C: default

  1. public class BigDecimalTest {
复制代码
  1.     public static void main(String[] args) {
复制代码
  1.         BigDecimal a = new BigDecimal(0.1);
复制代码
  1.         System.out.println(a);
复制代码
  1.         BigDecimal b = new BigDecimal("0.1");
复制代码
  1.         System.out.println(b);
复制代码
  1.     }
复制代码
  1. }
复制代码
04下列哪种说法是正确的:A: 两种赋值的方式是一样的
B: 推荐a的赋值方式
C: 推荐b的赋值方式

  1. public class LockTest {
复制代码
  1.     private final static Lock lock = new ReentrantLock();
复制代码
  1. [/code][code]    public static void main(String[] args) {
复制代码
  1.         try {
复制代码
  1.             lock.tryLock();
复制代码
  1.         } catch (Exception e) {
复制代码
  1.             e.printStackTrace();
复制代码
  1.         } finally {
复制代码
  1.             lock.unlock();
复制代码
  1.         }
复制代码
  1.     }
复制代码
  1. }
复制代码
05下列哪种说法是错误的:A: lock是非公平锁
B: finally代码块不会抛出异常
C: tryLock获取锁失败则直接往下执行


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

[iframe]/mp/newappmsgvote?action=show&__biz=MzIzOTU0NTQ0MA==&supervoteid=463172765#wechat_redirect[/iframe]


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


关注「阿里技术」
把握前沿技术脉搏
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:35
帖子:7
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP