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


    不要在实体类中使用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是引用类型所以对其大小进行比较时不能使用等号.

    integerstring有一些相似之处

     		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比特).

  • 相关阅读:
    uni app 零基础小白到项目实战
    uni-app 事件以及事件绑定
    uni-app 事件以及事件绑定
    uni-app 组件
    uni-app 组件
    uni-app 网络请求
    uni-app 网络请求
    uni-app 图片上传实战
    uni-app 图片上传实战
    uni-app下拉刷新加载刷新数据
  • 原文地址:https://www.cnblogs.com/AD-milk/p/14342058.html
Copyright © 2020-2023  润新知