Integer 和 int
复习到基本数据类型的时候,发现混淆Integer和int,所以整理相关知识。
首先,int是java的基本数据类型,也就是immutable的(当作返回值类型的时候,无需防御式拷贝);而Integer的本质是类,所以是mutable的,它是int的包装类,个人理解就是,由于int很常用,所以构造一个Integer,再将一些常用的方法加进去,让它使用起来更方便。
查阅资料过程中,发现,int和Integer的equals()的结果也有很多学问。
“==”和equals
首先就是明确,java中==的意思是查看地址,而一般java中都是new出来的实例,所以地址都不一样;而像int、String这样的基本数据类型,他们如果一开始就直接赋值(比如:int x=1)这样的变量是放在常量池中的,也就是一个常量就一个,地址是一样的。
在以上的前提下,关于int和Integer的“==”和equals:
1、如果是两个new来的Integer,永远不可能相等(刚刚提过了)
2、如果是Integer 和 int,他们的值相等,那就满足==。这是因为" 包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较 "
3、如果是一个是new来的Integer,一个是Integer x = 0 这样来的,那么他们也不满足==,因为直接复制来的实在常量池中,而这地址不可能相等
4、最有意思的是如果是两个赋值来的Integer,当他们的值在-128到127之间,他们满足==;如果其他就不满足。这是因为在此区间内,赋值来的变量都在常量池中(一个值仅一个)所以他们一定地址相同,满足==。而此区间之外,就需要通过new来,所以不满足==。
Integer 和 int相关推荐
- Integer vs int
http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html 如果面试官问Integer与int的区别:估计大多数人只会说道 ...
- integer比较_傻傻分不清?Integer、new Integer() 和 int 的面试题
基本概念的区分 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2.Integer 变量必须实例化后才能使用,而int变量不需要 3.Integer 实际是对象的 ...
- java integer int 比较_java Integer和int之间的比较问题是什么?
展开全部 java Integer和int之间e68a84e8a2ad3231313335323631343130323136353331333365633864==的比较问题.求解释 public ...
- Integer 和 int 比较的特殊之处
2019独角兽企业重金招聘Python工程师标准>>> 第一个例子: 假设我们同时定义 int a = 3; int b = 3; 编译器先处理int a = 3: 首先它会在 ...
- (备忘)Java数据类型中String、Integer、int相互间的转换
1.Integer转换成int的方法 Integer i; int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Inte ...
- Integer 和 int的种种比较
public static void main(String[] args) {int i = 128;Integer i2 = 128;Integer i3 = new Integer(128);/ ...
- Java数据类型中String、Integer、int相互间的转换
1.Integer转换成int的方法 Integer i; int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Int ...
- String 和Integer、int之间互转
String转Integer String str = "10"; Integer it = Integer.valueOf(str); Integer转String Intege ...
- integer比较_每日一题:Integer、int 的区别
点击上方蓝色字体,选择"标星公众号"优质文章,第一时间送达来自 | chenxiangxiang链接 | cnblogs.com/cxxjohnson/p/10504840.htm ...
- 你知道Integer和int的区别吗
最近小康面试,突然被面试官问道,说一下Integer和int的区别.额-可能平时就知道写一些业务代码以及看一些自己觉得比较高大上的东西,包括面试也看的一些Spring源码等,对于这种java特别基础的 ...
最新文章
- 用Java实现Stream流处理中的滑窗
- C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】
- zabbix的主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...
- Dubbo设置超时时间
- 百度文档搜索与Google文档搜索的简单比较
- 采购订单单价金额屏蔽
- 智能终端会议系统(15)---视频会议十大开源编解码项目排行
- [BZOJ2958]序列染色
- spring异常处理实例(登录例子)
- 德鲁伊 oltp oltp_深入研究内存中OLTP表的非聚集索引
- COOKIESESSION 入门
- C#教程第四课:循环控制语句
- JPDA 架构研究4 - JDWP的传输器
- Google浏览器被搜狗篡改怎么恢复?
- 【免费or付费】外卖优惠券公众号的申请以及做法有什么不同?
- python大学生社团管理系统
- Hi3516DV300编译环境搭建问题及解决
- stremlit学习前骤
- 关于音乐制作的一些网站
- C语言实现:最长回文子串算法
热门文章
- python基础------文件读写操作、re、os和sys模块
- python衡量数据分布的相似度/距离(KL/JS散度)
- css设置透明背景,背景色透明度
- 万维网发明者Tim Berners-Lee著作:《编织万维网》译文:第一章
- 全国计算机电脑系统有问题吗,笔记本重装系统对电脑有影响吗
- android转ios 王者荣耀,王者荣耀怎么转移号
- 递归算法向非递归算法转换
- with open (files_name) as f
- java解决撞库的问题_Web安全开发之验证码设计不当引发的撞库问题
- 乌鸦安全2021年度文章合集