为什么一个null值的引用和一个值做==比较会报NPE啊,而null与一个值得引用比较就可以
1.null值引用与值本身做比较
1、数据类型的包装类是实体类,即其实体是对象,当和基本数据类型进行比较时,会先进行拆箱的操作,即id会调用id.intValue,当id为null的时候,会报空指针异常。
2、包装类与null进行 == 比较,不会进行拆箱操作。
3、包装类与包装类进行 == 比较不会进行拆箱操作,但是如果这里使用equals则会进行拆箱操作会报异常。
包装类和基础数据类型比较,有自动装箱和拆箱的操作,后续调用了Integer.intValue,当你是null的时候,可不就空指针了嘛
因为==左侧是个对象,==本身也是一个方法,你这个对象为空,就不能进行方法调用