Integer 与int转换null指针

当Integer对象值为0时,在进行数值计算中可能会引发异常。本文探讨了在从数据库获取数据并在service层进行处理时,如何通过逻辑判断避免此类异常,以及在遇到0值时采取默认值的策略。

当integer对象为0时,与数值计算会出现异常,

在数据库获取到的数据在service层应做逻辑非0判断,若为0,做默认值处理

Java 中 Integer int 存在多方面的区别: - **类型层面**:Integerint 的包装类,属于引用类型;而 int 是 Java 的一种基本数据类型[^2][^4]。 - **实例化存储方式**:Integer 变量必须实例化后才能使用,它实际上是对象的引用,当使用 `new` 创建一个 Integer 时,会生成一个指针指向此对象;int 变量不需要实例化,它直接存储数据值[^2][^4]。 - **默认值**:Integer 的默认值是 nullint 的默认值是 0[^2][^4]。 - **`==` 比较**: - 两个通过 `new` 生成的 Integer 变量永远不相等,因为 `new` 生成的是两个不同的对象,其内存地址不同。示例代码如下: ```java Integer i = new Integer(100); Integer j = new Integer(100); System.out.println(i == j); // 输出 false ``` - Integer 变量 int 变量比较时,只要两个变量的值相等,则结果为 true。因为包装类 Integer 基本数据类型 int 比较时,Java 会自动拆包装为 int,然后进行比较,实际上就变为两个 int 变量的比较。示例代码如下: ```java Integer i = new Integer(100); int j = 100; System.out.println(i == j); // 输出 true ``` - 非 `new` 生成的 Integer 变量 `new Integer()` 生成的变量比较时,结果为 false。因为非 `new` 生成的 Integer 变量指向的是 Java 常量池中的对象,而 `new Integer()` 生成的变量指向堆中新建的对象,两者在内存中的地址不同。示例代码如下: ```java Integer i = new Integer(100); Integer j = 100; System.out.println(i == j); // 输出 false ``` - 对于两个非 `new` 生成的 Integer 对象,进行比较时,如果两个变量的值在区间 -128 到 127 之间,则比较结果为 true;如果两个变量的值不在此区间,则比较结果为 false。示例代码如下: ```java Integer i = 100; Integer j = 100; System.out.println(i == j); // 输出 true Integer m = 128; Integer n = 128; System.out.println(m == n); // 输出 false ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值