您的位置:首页 > 编程语言 > Java开发

Java int和integer有什么区别 (mybatis踩坑)

2021-01-28 21:21 585 查看

不要在实体类中使用int

我们都知道Integer是int的包装类,而int是基本数据类型。所以Integer类型的变量会初始化为

null
,int类型则会被初始化为0 。

所以在下面的动态拼接例子中:

<select id="findActiveBlogWithTitleLike"
resultType="Blog">
SELECT * FROM BLOG
WHERE state = ‘ACTIVE’
<if test="title != null">
AND title_id like #{id}
</if>
</select>

如果id在实体类中是用int表示,那

<if test="title != null">
的判断是恒为真的。无法达到动态拼接的效果。

如果用integer表示,当id缺省时会被初始化为

null
这样这条动态sql才能按照我们的预想运行。

integer缓存

此外,integer与int的区别还需要注意的是:因为integer是引用类型所以对其大小进行比较时不能使用等号.

integer
string
有一些相似之处

Integer i1 = 127;
Integer i2 = 127;
System.out.println(i1 == i2);

i1 = 128;
i2 = 128;
System.out.println(i1 == i2);
/*result:

true
false
*/

integer具有缓存机制,这个缓存值默认范围是**-128 到 127 **,刚好是八位二进制补码的表示范围(计算机读取文件以字节为单位的,也就是8比特).

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: