大家好,这是我第一次写博客,来分享我平时工作中遇到的问题及平时学习的技术,如果有写的不好或者不对的地方还望大家能够指出和包涵。

那么接下来就开始说下我工作中遇到的这个问题,我写了一个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,所以就报了空指针。

嘻嘻,第一次写,还是写的不够好,以后会继续

最新文章

  1. xtrabackup 使用说明(续)
  2. 调度系统任务创建---创建一个JoinTrigger的依赖任务(五)
  3. 2015安徽省赛 H.数7
  4. Zend studio 10.6 配置XDEBUG
  5. UIActionSheet 修改字体颜色
  6. C语言中的库是什么
  7. hdu 1850 Being a Good Boy in Spring Festival(Nimm Game)
  8. Java程序打包成jar包
  9. jQuery.FlexiGrid使用总结
  10. php获取当前url完整地址
  11. codereview介绍
  12. Swift 2.0基本语法
  13. 安卓中onBackPressed ()方法的使用
  14. CentOS安装VirtualBox增强工具
  15. Android TV listView焦点平滑移动
  16. springboot热部署配置
  17. WEB学习笔记6-正确闭合HTML标签
  18. 公网k8s
  19. maven的下载,安装配置以及build一个java web项目
  20. libsvm java版本使用心得(转)

热门文章

  1. HBuilder创建app
  2. mysql性能优化随笔
  3. 201871010135-张玉晶《面向对象程序设计(java)》第十周学习总结
  4. uiautomator输入中文实例
  5. day28 8_7 网络编程之tcp协议
  6. 重新学习SpringMVC——高级
  7. Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务
  8. 用NABCD法提出靠谱的项目建议
  9. [LeetCode] 924. Minimize Malware Spread 最大程度上减少恶意软件的传播
  10. [LeetCode] 907. Sum of Subarray Minimums 子数组最小值之和