1.思考题下面的代码可能有什么问题?为什么?importjava.util.HashMap;importjava.util.Map;publicclassOneMoreStudy{publicstaticvoidmain(String[]args){Mapmap=newHashMap<>();map.put("黑号子",1);整数i=map!=null?map.get("a"):Integer.MAX_VALUE;System.out.println(i);}}可能有的朋友觉得没有问题,请大家思考5秒铃……。....第二,怎么了?先回答第一个问题,可能有什么错误,真正的知识来自于实践,我们直接运行一下就知道了。JDK7,报空指针异常,截图如下:JDK8,未报异常,截图如下:综上所述,在JDK7中,上述代码会出现空指针异常。3.是什么原因?那么为什么会出现空指针异常呢?让我们反编译它。JDK7编译后的反编译代码:可以看出,在JDK7中进行三元运算时,会将其中的对象拆箱为基本类型进行运算。对象拆箱时,由于对象为null,拆箱过程中调用null.intValue()时会报空指针异常。JDK8编译后的反编译代码:可以看出,在JDK8中的三元运算中,会将基本类型装箱到对象中进行运算,所以没有报异常。四、解决方案还是用JDK7。注意,为了避免空指针异常,基本类型应该在三元运算符中装箱,例如:publicstaticvoidmain(String[]args){Mapmap=newHashMap<>();map.put("黑号子",1);整数i=map!=null?map.get("a"):Integer.valueOf(Integer.MAX_VALUE);系统.out.println(i);}