int和Integer的区别

1、Integer是int的包装类,int则是java的一种基本数据类型 
2、Integer变量必须实例化后才能使用,而int变量不需要 
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 
4、Integer的默认值是null,int的默认值是0

延伸: 
关于Integer和int的比较 
1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

Integer i = new Integer(100);
Integer j = new Integer(100);
System.out.print(i == j); //false

2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true

3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j); //false

4、对于两个非new生成的Integer对象,进行比较时,如果两个变量的值在区间-128到127之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为false

Integer i = 100;
Integer j = 100;
System.out.print(i == j); //true
Integer i = 128;
Integer j = 128;
System.out.print(i == j); //false

对于第4条的原因: 
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了

如果有错误的地方,还请指正。

int和Integer的区别在哪里相关推荐

  1. java int interger_java面试题之int和Integer的区别

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  2. java int == integer_java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  3. 二十八、Java中的Int和Integer的区别

    @Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  4. 最明的int和Integer的区别

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型  2.Integer变量必须实例化后才能使用,而int变量不需要  3.Integer实际是对象 ...

  5. java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  6. int和Integer的区别,哪个在定义变量好

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  7. JAVA中int 是什么意思,java中int和Integer什么区别

    java中int和Integer的区别  一看就懂 int 是基本类型,直接存数值 integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前 ...

  8. java int和integer的区别_int和Integer的区别

    int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...

  9. 10分钟讲清int 和 Integer 的区别

    其实在Java编程中,int和Integer都是非常常用的数据类型,但它们之间存在一些关键的区别,特别是在面向对象编程中.所以接下来,就让我们一起来探讨下关于int和Integer的区别这个问题吧. ...

最新文章

  1. 卡尔曼滤波——车定位(GPS与车运动方程)
  2. 关于stm32 hal 库 iic 一直是 busy 问题
  3. SolrJ添加删除文档
  4. OneNote代码高亮插件(NoteHighLight)
  5. ICLR 2022 | 香侬科技提出基于图神经网络的语义理解模型,获单项满分
  6. 用JADE创建多agent系统
  7. Assign the task HDU - 3974(线段树+dfs建树+单点查询+区间修改)
  8. python ConfigParser模块详解
  9. popoverController简单介绍
  10. 关于 JVM 内存的 N 个问题(转)
  11. Python人脸识别考勤打卡系统
  12. 解密加油优惠打折券的制作过程
  13. vb.net设置分辨率和缩放比例_配置高不一定性能强,Win 10做好这些设置才能“6到飞起”!...
  14. 知名IB学校ib英文书单合集
  15. RTB广告大数据时代 人才奇缺培养迫在眉睫
  16. arcgis注记详解
  17. ae中计算机打字预设,AE预设-5种科幻标题打字机光标文字输入模拟Web浏览器动画预设Typewriter Text Presets...
  18. 苹果全球销量超越小米重回第二,荣耀回归国内手机市场第一梯队
  19. INI 文件读取专用类
  20. 120名商家眼中微信营销的十个真相

热门文章

  1. Ampere 携手 Rigetti 开发混合量子经典计算机
  2. 腾讯云TDSQL-A发布公有云版本 支持第七次全国人口普查等海量数据场景
  3. 联合南京大学,爱奇艺智能论文入选顶会CVPR 2021
  4. 2020百度云秀最新成绩单,AI Cloud活跃客户数同比去年增长65%
  5. 乘风破浪的PTM:两年来预训练模型的技术进展
  6. 操纵神经元构造后门,腾讯朱雀实验室披露AI模型新型攻击手法
  7. 万字长文综述目标检测领域,你要的都在这里
  8. Python爬取近十万条程序员招聘数据,告诉你哪类人才和技能最受热捧! | 原力计划...
  9. 经典不过时,回顾DeepCompression神经网络压缩
  10. @程序员,Python 3还有哪些未Get的潜藏技能?| 技术头条