相信大家都有这种体会,工作以来一直都是自己写代码,感觉自己的代码总是平平无奇,运行倒是能运行,就是没有那种让人眼前一亮的感觉。而每次阅读别人的源码,心里一直再默念,卧槽,还能这样写,天哪,太精辟了!

于是,我就想,把这些让人眼前一亮的代码都摘录下来。一方面,自己能学习留痕,二来也能把这些知识分享给大家。

private static String createPlayer(PlayerTypes playerType) {
    return switch (playerType) {
        case TENNIS -> "网球运动员费德勒";
        case FOOTBALL -> "足球运动员C罗";
        case BASKETBALL,PINGPANG -> "牛逼运动员";
        case UNKNOWN -> throw new IllegalArgumentException("未知");
    };
}

另外,代码的优化应该在保证业务正常运行的前提下进行,下面我讲一个有隐患的代码优化例子:

Map map=new HashMap(){{
    put("key","value");
}};

这种写法,比起新建HashMap对象后再一个个put值,虽然是提高了代码的整体性,但是却存在着致命的缺陷,这也是我在搭地铁刷掘金时在一篇文章上看到的

首先给出结论:这种写法会导致抛出OOM异常

因为在new HashMap时,是调用了一个匿名内部类的put方法,而根据引用计数法,这个对象一直持有外部类的引用,导致该对象在GC时无法清除,埋下了OOM的隐患。