Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一篇文章搞明白Integer、new Integer() 和 int 的概念与区别

一篇文章搞明白Integer、new Integer() 和 int 的概念与区别

原创
作者头像
程序员追风
修改于 2019-08-26 03:13:49
修改于 2019-08-26 03:13:49
1.8K0
举报

基本概念的区分

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

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

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

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

Integer、new Integer() 和 int 的比较

1、两个 new Integer() 变量比较 ,永远是 false

因为new生成的是两个对象,其内存地址不同

2、Integer变量 和 new Integer() 变量比较 ,永远为 false。

因为 Integer变量 指向的是 java 常量池 中的对象,而 new Integer() 的变量指向 堆中 新建的对象,两者在内存中的地址不同。

3、两个Integer 变量比较,如果两个变量的值在区间-128到127 之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为 false 。

分析:

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

java对于-128到127之间的数,会进行缓存。

所以 Integer i = 127 时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了。

4、 int 变量 与 Integer、 new Integer() 比较时,只要两个的值是相等,则为true

因为包装类Integer 和 基本数据类型int 比较时,java会自动拆包装为int ,然后进行比较,实际上就变为两个int变量的比较。

示例1:

答案是

示例2:

示例3:

以下输出结果为false的是:

解析:

i01 == i02 。i01.intValue()i02 两个值的比较5959 -->true;

i01 == i03 。由于 59在-128到127之间,所以,i01和i03的赋值操作返回的是同一个对象。都是从chche中返回的同一个对象,对象地址相同 true;

i03 == i04。i03是来自缓存值,i04是新new的对象 ,二者不是同一个对象,所以false。

i02 == i04。和第一个类似,true。

答案是 C 。

示例4:

与示例3的唯一不同,就是将值全部改成128。

以下输出结果为false的是:

答案

最后 欢迎大家一起交流,喜欢文章记得点个赞哟,感谢支持!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
傻傻分不清?Integer、new Integer() 和 int 的面试题
1、Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2、Integer 变量必须实例化后才能使用,而int变量不需要 3、Integer 实际是对象的引用,当new一个 Integer时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值 4、Integer的默认值是null,int的默认值是0
Java技术栈
2019/10/22
3900
Java每日一练(2017/6/13)
Java基础 | 数据库 | Android | 学习视频 | 学习资料下载 课前导读 ●回复"每日一练"获取以前的题目! ●答案公布时间:为每期发布题目的第二天 ★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案 ●我希望大家积极参与答题!有什么不懂可以加小编微信进行讨论 ★珍惜每一天,拼搏每一天,专心每一天,成功每一天。 题目要求 本期题目: (单选题) 1以下Java程序运行的结构是: public class Tester{ public static void main(Stri
Java学习
2018/04/16
8281
面试真题:Integer(128)引发的思考
Hey小伙伴们,今天要给大家安利一篇操作实践的文章,相信大家通过仔细阅读,一定会有所收货!
不惑
2024/11/26
4020
面试真题:Integer(128)引发的思考
Java笔试题
https://blog.csdn.net/shakespeare001/article/details/51151650
chenchenchen
2022/11/29
4200
Java笔试题
Java包装类(Integer 详解 )
Java包装类 基本概述 --- 在某些场合要求所有的数据内容都必须是类类型的对象,而Java语言中有8种基本数据类型声明的变量都不是对象,为了使得这些数据在该场合种能够使用,则需要好进行对象化处理,此时就需要借助包装类将变量包装成对象再进行使用 包装类是为了值类型数据和对象间能互相转换、提供装箱和拆箱机制的类 基本数据类型 | 包装类型 | - | byte | Byte Boolean | Boolean short | Short char | Character int | Integer long
ruochen
2021/05/15
4610
Java包装类(Integer 详解 )
Java使用 == 判断 Integer 相等的详解
在Java编程中,我们经常需要比较两个值是否相等。对于基本数据类型,比如 int,我们可以直接使用 == 操作符来比较它们的值。然而,对于包装类,如 Integer,使用 == 的行为则完全不同。本文将详细解释为什么 Integer 类型使用 == 判断相等时会有不同的行为,并提供正确的比较方法。
高久峰
2024/12/25
4080
JAVA面试50讲之4:int和Integer的区别
对于第4条的原因: java在编译Integer i = 100 ;时,会翻译成为Integer i = Integer.valueOf(100);,而java API中对Integer类型的valueOf的定义如下:
用户1205080
2019/01/02
1K0
int与Integer,long与Long的区别以及装箱与拆箱的理解
1,从数据类型看:int和long是基本数据类型,对其赋值属于数值引用,只能对其进行数值运算
全栈程序员站长
2021/12/23
1.4K0
==与equlas区别(看这一篇文章就够了)
或许您也有听过这样的总结 :== 的比较实际是:基本类型比较的是值,非基本类型比较的是内存地址可能有人问为啥用删除线将总结划掉呢?随着小编一起来实践一下吧,或许您心里就会有自己的总结:
JAVA日知录
2021/04/07
3030
java面试强基(4)
⚠注意 : 基本数据类型存放在栈中是一个常见的误区! 基本数据类型的成员变量如果没有被 static 修饰的话(不建议这么使用,应该要使用基本数据类型对应的包装类型),就存放在堆中。
一个风轻云淡
2022/11/20
3130
java面试强基(4)
【数据结构】包装类和泛型
除了int的包装类是Integer,char的包装类是Character,其他的基本类型对应的包装类都是将首字母大写。
用户11162265
2024/08/05
1070
【数据结构】包装类和泛型
Java 中为什么设计了包装类
在 Java 中,万物皆对象,所有的操作都要求用对象的形式进行描述。但是 Java 中除了对象(引用类型)还有八大基本类型,它们不是对象。那么,为了把基本类型转换成对象,最简单的做法就是「将基本类型作为一个类的属性保存起来」,也就是把基本数据类型包装一下,这也就是包装类的由来。
飞天小牛肉
2021/03/18
1.3K0
Java 中为什么设计了包装类
Integer与int之间的秘密
相信各位Java行业的”打工人“,不论在日常工作还是学习中,都会接触整数类型的数值,并且还能深情的说出”整数类型一般分为4种“。
用户8639654
2021/07/15
5080
Java基础--int与Integer区别
java在最初设计的时候就提供了8种基本数据类型和对应的8种引用类型。 基本数据类型|封装类型 ---|--- byte|Byte short|Short int|Integer long|Long float|Float double|Double boolean|Boolean char |Character
河岸飞流
2020/02/13
5050
面试官:兄弟,说说基本类型和包装类型的区别吧
六年前,我从苏州回到洛阳,抱着一幅“海归”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意。其中有一位叫老马,至今还活在我的手机通讯录里。他当时扔了一个面试题把我砸懵了:说说基本类型和包装类型的区别吧。
沉默王二
2019/09/29
5800
面试官:兄弟,说说基本类型和包装类型的区别吧
【Java面试题系列】:Java基础知识面试题,看这一篇就够了
参加过社招的同学都了解,进入一家公司面试开发岗位时,填写完个人信息后,一般都会让先做一份笔试题,然后公司会根据笔试题的回答结果,确定要不要继续此次面试,如果答的不好,有些公司可能会直接说“技术经理或者总监在忙,你先回去等通知吧”,有些公司可能会继续面试,了解下你的项目经验等情况。
用户5546570
2019/06/06
4960
int和Integer的区别以及使用场景
int 是我们常说的整形数字,是 Java 的 8 个原始数据类型(Primitive Types,boolean、byte 、short、char、int、float、double、long)之一。Java 语言虽然号称一切都是对象,但原始数据类型是例外。
刺槐儿
2023/11/25
1.6K0
聊聊面试-int和Integer的区别
最近面试了很多候选人,发现很多人都不太重视基础,甚至连工作十几年,项目经验十几页的老程序员,框架学了一大堆,但是很多 Java 相关的基础知识却很多都答不上来。还有很多人会回答,只知道要用,但是从来不会去看看它具体是怎么实现的。
phoenix.xiao
2020/08/05
4840
int 和 integer :装箱和拆箱的过程,会用到什么方法,你觉得这个会对性能有影响吗,原因是什么(百度一面)
今天继续来讲面试,已经出了很多java一面真题系列文章了,之后也会整理成一个系列,欢迎持续关注哦。
用户7656790
2020/09/01
2.8K0
浅谈 Integer 类
本文介绍了Java中的Integer类,包括其基本用法、自动装箱和拆箱、与其他类的关系以及其缓存机制。此外,还通过具体示例演示了如何使用Integer类来处理整数值。
IT可乐
2018/01/04
7150
浅谈 Integer 类
相关推荐
傻傻分不清?Integer、new Integer() 和 int 的面试题
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档