广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >int和Integer的区别
  • 548
分享到

int和Integer的区别

java教程intInteger区别 2018-02-20 11:02:22 548人浏览 无得
摘要

int和Integer的区别Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针

int和Integer的区别

Integer是int的包装类,int则是java的一种基本数据类型

Integer变量必须实例化后才能使用,而int变量不需要

Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

Integer的默认值是null,int的默认值是0

推荐学习:java教程

延伸:

关于Integer和int的比较

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

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

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

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

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

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

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

Integer i = 100;Integer j = 100;
System.out.print(i == j); //trueInteger 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了

更多编程学习课程,可关注PHP中文网!

--结束END--

本文标题: int和Integer的区别

本文链接: https://www.lsjlt.com/news/2563.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • int和Integer的区别
    int和Integer的区别Integer是int的包装类,int则是java的一种基本数据类型 Integer变量必须实例化后才能使用,而int变量不需要 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针...
    99+
    2018-02-20
    java教程 int Integer 区别
  • java中int和Integer的区别
    java中int和Integer的区别:类型不同,int是数据类型,而integer是引用类型。int存储的是数值,integer存储的是引用对象的地址。integer对象会占用更多的内存,而int占用的空间少。Integer变量与int变...
    99+
    2022-10-20
  • java integer和int的区别有哪些
    基础:int 是 java 的一种基础数据类型,而 integer 是int 的一个封装类。Integer 变量必须实例化之后才能使用,而 int 变量不需要。Integer 实际是对象的引用,当 new 一个 integer 对象时,实际...
    99+
    2018-09-15
    java教程 java integer int 区别
  • java中int与integer的区别
    一、java基本数据类型及其封装类java数据类型有基本数据类型和引用数据类型,为了方便将基本数据类型当作对象处理,java引入了基本数据类型相对应的封装类,如int封装类是Integer。在线教学视频分享:java教学视频二、java自动...
    99+
    2020-09-16
    java入门 java int integer 区别
  • java中int和integer的区别是什么?
    java中int和integer的区别 ● int是基本数据类型,int变量存储的是数值;Integer是引用数据类型,实际是一个对象,Integer存储的是引用对象的地址。 ● int默认值是0,Integer默认值是null; ● in...
    99+
    2021-09-17
    java教程 java int integer
  • Java中Integer和int的区别是什么
    这篇文章主要介绍Java中Integer和int的区别是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基本概念(重要)Integer 是 int 的包装类,int 则是 java 的一种基本数据类型;Inte...
    99+
    2023-06-15
  • MySQL中int和integer有什么区别
    MySQL中int和integer有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。MySQL中int和integer的区别&nbs...
    99+
    2022-10-18
  • Integer与int有什么区别
    Integer与int有什么区别?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Integer和int的区别Integer的默认初始值是null,而int的初始值是int,也...
    99+
    2023-06-06
  • 浅谈Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别
    目录IntInteger和Integer.valueOf()new Integer()三者之间的比较Int Int是Java八种基本数据类型之一,一般大小为4字节32位,取值范围为2...
    99+
    2022-11-12
  • Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么
    本篇内容主要讲解“Java中Int、Integer、Integer.valueOf()、new Integer()之间的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中Int、...
    99+
    2023-06-25
  • Java中int与Integer的区别是什么
    这篇文章主要讲解了“Java中int与Integer的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中int与Integer的区别是什么”吧!nJava 是一种强数据类型的...
    99+
    2023-06-21
  • 你知道在Java中Integer和int的这些区别吗?
    目录一、基本概念(重要)二、拓展三、new Integer()与new Integer()的比较四、Integer与new Integer()的比较五、Integer与Integer...
    99+
    2022-11-12
  • 详谈java中int和Integer的区别及自动装箱和自动拆箱
    目录int和Integer的区别及自动装箱和自动拆箱Integer和int的对比,如下所示:自动装箱和自动拆箱:Integer的自动拆装箱的陷阱(整型数-128到127的值比较问题)...
    99+
    2022-11-12
  • MySQL中int (10) 和 int (11) 的区别
    mysql 中整数数据类型: 不同类型的取值范围: 不同数据类型的默认v显示宽度: 显示的宽度跟负号没有关系,它只在人工设置了 ZEROFILL 属性有效。一旦人工设置了 ZE...
    99+
    2022-11-13
  • MySQL中int(10)和int(11)的区别详解
    目录一、背景二、MySQL整数类型总结:一、背景 在创建数据库表的时候,我们经常会用到int(x)来定义一个字段的类型,一直误以为这里的x表示存储数字的长度。 其实大错特错,这里的 x 指的是 最大显示宽度(最大有效显示...
    99+
    2023-03-02
    MySQLint(10)和int(11) MySQLint(10)
  • 浅谈mysql中int(1)和int(10)的区别
    目录困惑数据说话零填充总结困惑 最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提mysql工单alter table xxx ADD user_...
    99+
    2022-11-13
  • MyBatis中int和Integer怎么使用
    这篇文章主要介绍“MyBatis中int和Integer怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MyBatis中int和Integer怎么使用”文章能帮助大家解决问题。有关int和In...
    99+
    2023-07-05
  • MySQL中int(10)和int(11)的区别是什么
    这篇文章主要介绍了MySQL中int(10)和int(11)的区别是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇MySQL中int(10)和int(11)的区别是什么文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • MySQL中int(10)和int (11)有什么区别
    这篇文章主要讲解了“MySQL中int(10)和int (11)有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL中int(10)和int (11)有什么...
    99+
    2023-06-28
  • mysql中int(1)和int(10)有哪些区别
    这篇文章给大家分享的是有关mysql中int(1)和int(10)有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。困惑最近遇到个问题,有个表的要加个user_id字段,user_id字段可能很大,于是我提...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作