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比特).
相关文章推荐
- Java的Integer和int有什么区别
- java里int和Integer什么区别
- java基础——int和Integer有什么区别
- Java基础知识学习巩固2--int和Integer有什么区别及扩展
- java核心内容——int和Integer有什么区别?
- 一、基础篇--1.1Java基础-int 和 Integer 有什么区别,Integer的值缓存范围
- java中int和Integer什么区别
- Java基础之int和Integer有什么区别
- Java的Integer和int有什么区别
- java中int和Integer什么区别
- Java中int和Integer的区别是什么?
- 一、基础篇--1.1Java基础-int 和 Integer 有什么区别,Integer的值缓存范围
- Java基础之int和Integer有什么区别
- Java中int与Integer、Long与long有什么区别?
- Java的Integer和int有什么区别
- java中int和Integer什么区别
- java里int和Integer什么区别
- Java中int和Integer有什么区别?
- Java的Integer和int有什么区别
- Java - int和Integer有什么区别?