0 != null 为什么报指针?
程序员文章站
2022-04-15 15:05:19
大家好,这是我第一次写博客,来分享我平时工作中遇到的问题及平时学习的技术,如果有写的不好或者不对的地方还望大家能够指出和包涵。 那么接下来就开始说下我工作中遇到的这个问题,我写了一个test,如下: 执行之后,报了空指针,当时一直不知道为什么,后来查阅资料发现原来是自动拆箱的问题,那么接下来我来仔细 ......
大家好,这是我第一次写博客,来分享我平时工作中遇到的问题及平时学习的技术,如果有写的不好或者不对的地方还望大家能够指出和包涵。
那么接下来就开始说下我工作中遇到的这个问题,我写了一个test,如下:
@test
public void test9() {
integer a = null;
if (0 != a) {
system.out.print("12344");
}
}
执行之后,报了空指针,当时一直不知道为什么,后来查阅资料发现原来是自动拆箱的问题,那么接下来我来仔细讲解一下:
1.首先我们先了解下什么是自动拆箱,装箱?
简单来说装箱就是自动将基本数据类型转换为包装类型,拆箱就是自动将包装类型转换为基本数据类型。
//自动装箱 integer a = 100; //真正执行的是 integer a = integer.valueof(100); //自动拆箱 int b = a; //真正执行的是 int b = a.intvalue();
2.不同类型用 != 比较时,包装类自动拆箱。
3.integer是包装类,默认值是null;int是基本数据类型,默认值是0。
4.大家现在再看下我上面写的那个test就会发现由于0是int类型,a是integer类型,所以当0 != a 时候,a会自动拆箱,执行a.intvalue(),由于a = null,所以就报了空指针。
嘻嘻,第一次写,还是写的不够好,以后会继续
推荐阅读
-
0 != null 为什么报指针?
-
【转载++】fopen返回0(空指针NULL)且GetLastError是0
-
不理解为什么调用一级指针作函数参数时候,就不能把myp1 = NULL,
-
JavaScript中为什么null==0为false而null大于=0为true(个人研究)_javascript技巧
-
JavaScript中为什么null==0为false而null大于=0为true(个人研究)_javascript技巧
-
0 != null 为什么报指针?
-
【转载++】fopen返回0(空指针NULL)且GetLastError是0
-
不理解为什么调用一级指针作函数参数时候,就不能把myp1 = NULL,