Integer和int的区别

简介: Integer和int的区别

今天在写一个domain中一个User类的时候,发现视频中老师写的

private Integer id;

我就留意了一下,因为我平时写的都是


private int id;

就想知道这Integer 和int两个的区别,发现将id定义成Integer ,可以包含id为null这种情况,而如果设置成int基本数据类型就会出现问题。后面是一些延伸------


Integer是int的包装类, int是基本数据类型


最主要的区别就是这句 一个是基本数据类型, 一个是类,

但其实其中隐含的细节很多,比如:

Integer的默认初始值是null,而int的默认初试值是0。

Integer变量必须先实例,int变量则可以直接使用

因为Integer是包装的类, 所以自带很多方法可以使用, (方法表附在最后),

而int是基本数据类型只能做一些基本的±*/=等操作 ,当二者交叉就会出现很多问题,

拆箱和装箱


装箱就是由基本数据类型封装成类的过程, 反而反之

什么时候会拆箱?——基本数据类型和引用数据类型做运算时

什么时候会装箱?——基本数据类型赋值给引用数据类型的时候


IntegerCache缓存


Integer a=200;
   Integer b=200;
   Integer a1=2;
   Integer b1=2;
   System.out.println(a==b); //false   1
   System.out.println(a1==b1); //true  2


java在编译Integer i = 100 ;时,会翻译成为Integer i = Integer.valueOf(100);,而java API中对Integer类型的valueOf的定义如下:


public static Integer valueOf(int i){
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high){
        return IntegerCache.cache[i + (-IntegerCache.low)];
    }
    return new Integer(i);


java对于-128到127之间的数,会进行缓存,Integer i = 127时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了

相关文章
|
7月前
|
缓存
【面试知识点】关于Integer和Int的比较
【面试知识点】关于Integer和Int的比较
|
4月前
|
Java
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
|
4月前
|
存储 缓存 Java
int 和 Integer 哪一个占用更多内存?
【8月更文挑战第21天】
157 0
|
7月前
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
66 1
|
7月前
|
Java
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
Java中int[]与Integer[]相互转化的方法,java基础知识面试重点总结
|
7月前
|
存储 编译器 程序员
int 和 long 的区别
int 和 long 的区别
|
7月前
|
存储 Java API
使用Integer而不是int的场景和优势解析
使用Integer而不是int的场景和优势解析
244 0
|
7月前
|
存储 C语言
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
学习总结(位操作符;循环输入的三种方式;交换两个变量值的三种方法;打印数字对应的二进制;unsigned int 与int 的区别;改变特定位数0/1;&&和||的连续操作(与前置,后置结合))
78 0
|
7月前
|
数据采集 分布式计算 数据处理
Dataphin常见问题之与指定类型int不兼容如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
7月前
|
SQL 流计算 OceanBase
OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
【2月更文挑战第25天】OceanBase CDC从热OB库采集过来的Tinyint(1)类型会默认转换成Boolean,请教一下,如果想转换成int类型,有什方法么?
190 3