扫码下载最新版《Java开发手册》阿里云开发者“藏经阁”海量免费电子书下载扫码关注Hollis一个对Coding有着独特追求的人《新版Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?4为什么阿里巴巴建议初始化HashMap的容量大小?15Java开发手册建议创建HashMap时设置初始化容量,但是多少合适呢?27为什么阿里巴巴禁止使用Executors创建线程池?31为什么阿里巴巴要求谨慎使用ArrayList中的subList方法?37为什么阿里巴巴不建议在for循环中使用“+”进行字符串拼接?44为什么阿里巴巴禁止在foreach循环里进行元素的remove/add操作?54为什么阿里巴巴禁止工程师直接使用日志系统(Log4j、Logback)中的API?66为什么阿里巴巴禁止把SimpleDateFormat定义成static变量?74为什么阿里巴巴禁止开发人员使用isSuccess作为变量名?85为什么阿里巴巴禁止开发人员修改serialVersionUID字段的值?97为什么阿里巴巴建议开发者谨慎使用继承?109为什么阿里巴巴禁止使用count(列名)或count(常量)来替代count(*)?111目录《新版Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?作者|Hollis作者简介:Hollis(个人公众号Id:Hollis),一个对Coding有着独特追求的人,现任阿里巴巴技术专家,个人技术博主,技术文章全网阅读量数千万,《程序员的三门课》联合作者。最近,阿里巴巴Java开发手册发布了最新版——泰山版,这个名字起的不错,一览众山小。新版新增了30+规约,其中有一条规约引起了作者的关注,那就是手册中提到在三目运算符使用过程中,需要注意自动拆箱导致的NullPointerException(后文简称:NPE)问题:因为这个问题我很久之前(2015年)遇到过,曾经在博客中也记录过,刚好最新的开发手册再次提到了这个知识点,于是把之前的文章内容翻出来并重新整理了一下,带大家一起回顾下这个知识点。《新版Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?<5可能有些人看过我之前那篇文章,本文并不是单纯的”旧瓶装新酒”,在重新梳理这个知识点的时候,作者重新翻阅了《TheJavaLanguageSpecification》,并且对比了JavaSE7和JavaSE8之后的相关变化,希望可以帮助大家更加全面的理解这个问题。基础回顾在详细展看介绍之前,先简单介绍下本文要涉及到的几个重要概念,分别是”三目运算符”、”自动拆装箱”等,如果大家对于这些历史知识有所掌握的话,可以先跳过本段内容,直接看问题重现部分即可。三目运算符在《TheJava...