Integer 和 int

6 篇文章 0 订阅
订阅专栏

一、区别

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

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

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

        4.Integer的默认值是null,而int的默认值是0。

二、比较

        首先这里要区分一下 “==” 和 equals 的区别:

  • “==”是运算符,如果是基本数据类型,则比较存储的值;如果是引用数据类型,则比较所指向对象的地址值
  • equals是Object的方法,比较的是所指向的对象的地址值,一般情况下,重写之后比较的是对象的值

        所以根据上面的解释我们知道,int是基本数据类型,而Integer是对象的引用。所以在比较时是有区别的。这里着重以 “==”来区分,因为“==”比较对象和引用时是不同的。

  1.Int 和 Int 比较 

        Int为基本数据类型,使用 "==" 比较,直接比较的是其存储的值。

 2.Integer 和 Int 比较 

        Integer变量和int变量进行比较时,java会自动拆箱为int,然后进行比较,实际上就是两个int变量进行比较,与2中int和int的比较相同。

 3.Integer 和 Integer 比较

        Integer是Integer对象的引用,所以两个通过new生成的Integer是两个不同的对象,其内存地址也不同,因此变量永远是不相同的。

注意以下俩种情况:

        第一种:

                ​​​​​​​        ​​​​​​​        ​​​​​​​​​​​​​​

        非new生成的Integer变量指向的是Java常量池中的对象,new生成的Integer变量指向堆中新建的对象,两者在内存中地址不同。

        第二种:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

         此处两个Integer类均为对象引用比较应该用equals,而这里使用==判断地址,结果本应该是false,但打印出来却是true,这是为什么?
        首先,直接声明 Integer a = 100;的时候,Java自动装箱为Integer a = Integer.valueOf(100);查看Integer类的valueOf方法:

// range [-128, 127] must be interned (JLS7 5.1.7)
// static final int low = -128;
// assert IntegerCache.high >= 127;
public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

        发现,当 i>=-128并且 i<=127的时候,第一次声明会将 i 的值放入缓存中,第二次直接复用缓存里边已有的对象,而不是重新创建一个Integer对象。这个区间内的Integer值可以直接使用 == 判断,但这个区间外的所有数据,都会在堆上产生,并不会复用已有对象。所以就会出现一种我们平时比较容易出错的情况,当使用 “==” 比较俩个值相等的Integer 引用时,当比较的值在 i>=-128并且 i<=127 这个区间内时,则相等,不在此区间则不等。因此我们在比较俩个Integer类型时,尽量使用equals来进行比较。

JavaInteger两种转int方法比较
08-31
Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...
intInteger有什么区别
星海IT学习之路
07-02 2万+
面试中会问道intInteger的区别,这里我们详细说一下 Integerint的包装类;int是基本数据类型。 Integer变量必须实例化后才能使用;int变量不需要。 Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值。 Integer的默认值是null;int的默认值是0 关于Integerint的深入比较 1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永.
Java基础 - Integerint的区别
热门推荐
java123456111的博客
05-18 3万+
一、intInteger的区别 两者的区别主要体现在以下几个方面: 1、数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型; 2、默认值不同:int 的默认值是 0,而 Integer 的默认值是 null; 3、内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象; 4、实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要; 5、变量的比较方式不同:
10分钟讲清intInteger 的区别
关注我!带你一路 "狂飙" 到底!
06-25 8553
intJava中的一种基本数据类型,用于表示整数。它是Java语言中最常用的数据类型之一,可以直接进行数值运算,无需通过封装类进行转换。IntegerJava中的一个封装类,用于表示整数。它是int的封装类,可以将int类型的数据转换为Integer类型的数据。Integer类提供了许多操作整数的方法,使得整数的操作更加方便和灵活。在本篇文章中,我们解释了JavaintInteger之间的差异,并结合一些代码案例进行了说明和分析。
IntInteger的区别
aikunjiao3421的博客
03-19 1150
一、区别: 1.Integerint的包装类,int则是java的一种基本的数据类型; 2.Integer变量必须实例化之后才能使用,而int变量不需要实例化; 3.Integer实际是对象的引用,当new一个Integer时,实际上生成一个指针指向对象,而int则直接存储数值 4.Integer的默认值是null,而int的默认值是0。 二、Integerint的比较 ...
intInteger的区别详细介绍(包括128陷阱)
m0_51358164的博客
01-21 9417
128陷阱 Integerint的详细介绍
Integerint的不同
04-22
Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...
面试中很多人走过的坑,看完让你知道IntegerInt
12-21
Java编程语言中,面试时常会遇到关于Integerint之间区别的问题,这些问题是考察开发者对数据类型、内存管理和自动装箱拆箱的理解。本文将深入解析这些知识点,帮助你避免在面试中踩坑。 首先,Java有两类数据...
Javaintinteger的区别(基本数据类型与引用数据类型)
12-09
Java编程语言中,`int` 和 `Integer` 是两种截然不同的数据类型,它们各自具有独特的特性和用途。理解这两者之间的差异对于编写高效、可靠的代码至关重要。 首先,`int` 是Java中的一个基本数据类型,它代表整数...
通过实例了解Java Integer类和int的区别
08-19
在比较intInteger时,Integer会自动拆箱为int类型,然后进行比较。 知识点5:new关键字的影响 使用new关键字创建的Integer对象不会被缓存,而是每次创建一个新的对象。因此,使用new关键字创建的对象进行比较时...
IntInteger的区别
suchahaerkang的博客
11-09 9689
文章目录一、IntInteger的区别IntInteger的比较(扩展) 一、IntInteger的区别 1、IntegerInt的包装类,Int是八种基本数据类型之一。 2、Integer变量必须实例化以后才可以使用,而Int变量不需要实例化。 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而Int是直接存储数据值。 4、Integer的默认值是null,Int的默认值是0。 IntInteger的比较(扩展) 先来看一段代码: publi
Integerint的区别
BIGKEY的博客
01-26 325
区别: 1、integerint的包装类,intJava的一种基本数据结构 2、integer变量必须实例化后才能使用,int变量不需要 3、integer实际是对象的引用,int是直接存储数据值 4、integer的默认值是null,int的默认值是0 比较: 首先要明白equals和==的区别: Equals通常用来比较两个对象的内容是否相等, ==用来比较两个对象的地址是否相等; Object类中的equals方法定义为判断两个对象的地址是否相等(可以理解成是否是同一个对象),此时就等同于
intInteger有什么区别?
TimeFriends
02-13 980
对于应用移植,虽然存在一些底层实现的差异,比如 64 位 HotSpot JVM 里的对象要比 32 位 HotSpot JVM 大(具体区别取决于不同 JVM 实现的选择),但是总体来说,并没有行为差异,应用移植还是可以做到宣称的“一次书写,到处执行”,应用开发者更多需要考虑的是容量、能力等方面的差异。我们知道 Java 的对象都是引用类型,如果是一个原始数据类型数组,它在内存里是一段连续的内存,而对象数组则不然,数据存储的是引用,对象往往是分散地存储在堆的不同位置。比如,对象头的结构。
intInteger的比较
weixin_44823875的博客
08-09 2575
Java中的intInteger在比较时是有区别的。(1)intJava中的一种基本数据类型,属于值类型,可以直接比较。(2)而Integer则是Java中的一种包装类型,属于引用类型,不能直接比较。当我们对两个Integer对象进行比较时,实际上是在比较它们所引用的对象在内存中的地址,而不是其所代表的数值。因此,如果直接使用==进行比较,通常不能得到正确的结果。
java面试题之intInteger的区别
dengtuan6285的博客
06-06 2433
intInteger的区别 1、Integerint的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0 延伸:...
java中使用 Integerint 的 含义、使用方法 及之间的区别
最新发布
YHLSunshine的博客
09-07 1202
java中使用 Integerint 的 含义、使用方法 及之间的区别
intInteger的区别
qianbihua00的博客
01-31 4158
intInteger的区别
integerint
07-23
Integerint都是Java中表示整数的数据类型,但它们有一些区别。 intJava的原始数据类型之一,它占用32位(4字节)内存,可以存储范围在-2147483648到2147483647之间的整数。int是一种基本数据类型,直接包含在Java语言中。 IntegerJava的一个类,它是int的包装类,实现了将基本数据类型int封装起来的操作。使用Integer可以将int转换为对象类型,进而可以使用Integer提供的一些方法,比如转换为二进制、八进制、十六进制字符串等。此外,Integer还提供了各种实用的方法来处理整数,如比较大小、最大值、最小值、位运算等。
写文章

热门文章

  • Java8(JDK1.8) 新特性介绍 11897
  • vue配置vue.config.js 11543
  • JDK各版本特性总结 9609
  • Springboot配置Log4j 6807
  • 常见的Restrictions用法 3530

分类专栏

  • Springboot多模块集成 16篇
  • Docker 2篇
  • Java干货 6篇
  • 前端 7篇
  • Python 2篇
  • 运维

最新评论

  • SpringBoot整合JWT+Spring Security+Redis实现登录拦截(二)权限认证

    郝南过: 登陆报401认证失败,查看报错信息“org.springframework.security.authentication.BadCredentialsException: 用户名或密码错误”。可能是因为密码未使用加密密码导致的。可使用如下代码对密码进行加密后在在存入数据库中 // 设置密码加密方式 BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); // 对密码进行加密 String password = passwordEncoder.encode("123456"); 或者在代码中加密码前加上 {noop} User user = new User(userInfo.getUsername(),"{noop}"+ userInfo.getPassword(),getAuthority(userInfo.getRoles()));[code=java] [/code][code=java] [/code][code=java] [/code]

  • JDK各版本特性总结

    阿J~: 很详细呀 感谢老哥分享!

  • JDK各版本特性总结

    starxu123456: 讲真,ARM的jdk7有么

  • JDK各版本特性总结

    Baci U: www.oracle.com表情包

  • JDK各版本特性总结

    starxu123456: 有官方下载地址吗

大家在看

  • Leetcode 每日一题:Diameter of Binary Tree

最新文章

  • 自定义@AnonymousAccess注解
  • Docker安装Redis
  • Docker安装mysql
2024年5篇
2023年20篇
2022年11篇
2020年2篇
2017年7篇
2016年10篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝南过

感谢大佬打赏,送你一个么么哒

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家泰安玻璃钢雕塑公司静安区正宗玻璃钢雕塑商场美陈组合花盆汕头城市广场玻璃钢雕塑深圳商场内部美陈新年商场门头美陈信阳玻璃钢卡通雕塑制作大连玻璃钢雕塑材质西瓜玻璃钢雕塑模压玻璃钢花盆仿铜玻璃钢雕塑联系方式玻璃钢煎蛋雕塑北京玻璃钢雕塑加工价格眉山玻璃钢雕塑商场美陈市场分析山西玻璃钢卡通雕塑羊艺术商场美陈售价池州玻璃钢雕塑小品苏州春节商场美陈湖北公园玻璃钢雕塑销售电话徐汇区公园玻璃钢花盆亳州定制玻璃钢雕塑绍兴玻璃钢仿铜雕塑定做价格江西泡沫玻璃钢雕塑嘉定区拉丝玻璃钢雕塑产品介绍广东玻璃钢透光雕塑公司玻璃钢植物雕塑定制海南玻璃钢雕塑设计及定制运城太湖石玻璃钢彩绘雕塑佛山玻璃钢书本造型雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化