一个很简单的例子,原文地址:http://www.taobaotest.com/blogs/2544
======================================原文开始===============================
本文中所提到的基本类型是指类似 int,long等,而对象类型是指Integer,Long等。
基本类型和对象类型第一个最大的不同在于初始化的值不同。int 初始化为0,Integer 为null。在一个线上产品故障的排查过程中发现根本原因在于开发同学把数据库DO对象的一个字段从int 改成了Integer引起的,因为int 类型可以正常的初始化,而Integer 对象的时候不能正常插入,导致了线上产品故障。
正是由于初始化的值的不同,也导致了在进行逻辑比较的时候,对象类型很容易出现空指针异常:
基本类型可以直接进行逻辑判断:
int num;
if( num >0 ){
//todo
}
这样的代码不会有空指针的异常,但是如果是如下代码:
Integer num;
if( num >0 ){
//todo
}
就会有空指针异常。这种异常特别容易出现在web的参数处理上:
例如:
public class MyTest {
@Autowired private HttpServletResponse response;
public void execute(@Param("pageSize") Integer pageSize) throws Exception {
//todo
//这里容易空指针异常
if( pageSize<=0 ){
pageSize = 1;
}
//todo
}
}
第二个不同在于基本类型没有可执行的方法,而对象类型支持很多封装的方法,例如Integer 对象 可以使用toString()的方法。
第三个不同在于基本类型不能作为List或者Map的类型,例如:
List<int> numList = new ArrayList<int>(); //这样是不可以的。
======================================原文结束===============================
以下是自己的测试代码:
public class NullTest { public static Integer test; public static void main(String[] args) { System.out.println(test == null); System.out.println(test > 0); } }
输出:
true Exception in thread "main" java.lang.NullPointerException at com.ssgx.ssa.test.NullTest.main(NullTest.java:8)
相关推荐
JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析JAVA代码BUG分析
java java查bug 查bug bug 查错 源码
java Bug模式详解
Java.Bug模式详解 第1章 混乱环境下的灵活方法 1.1 软件设计、实现和维护的趋势 1.1.1 对于稳定、安全 系统的需求增加 1.1.2 传统软件工程技 术的局限性 1.1.3 开放源代码的软 件项目的可利用性 1.1.4 对于...
java 框架 bug处理 大全
JAVA常见异常,JAVA异常,bugJAVA常见异常,JAVA异常,bug
JAVA.BUG模式详解java优化编程
Java Bug模式详解
根据Java面向对象吃货联盟项目修改为通过HashMap存储菜品和订单(其实ArrayList更简单) 实现的功能:订餐,查看餐袋,签收订单,删除订单,我要点赞,退出系统 定义的类:菜品类、订单类、测试类(可以把里面实现的...
网上都是Java实现飞行棋,都有Bug,今天解决Bug可顺利运行,完了几把,爽;可以交作业了
本书是为任何熟悉JAVA编程技术,并希望更有效地预防、解释、交流或者修正BUG的人员而编写。
可作为myeclipse的插件加入,可以检测java代码隐性的bug
解释测试bug分类的技术文档,可以帮助bug的初学者
基于JAVA语言开发的bug管理系统
Bug pattern 描述容易导致bug的编码模式和解决方法
我的期末大作业 包括铅笔,橡皮,喷枪,直线,多边形,矩形,圆角矩形,椭圆 前四个有3种粗细大小,后四个分为实心空心 本人测试无任何BUG,解压为工程文件夹
Java Bug 模式详解
问题管理 BUG管理 任务管理 项目管理系统 仅供学习和参考
java实现俄罗斯方块代码,存在的bug就是越界的问题。还有卡顿