int 和 Integer
int 和 Integer
以最简单的代码来看
int a = 100, b =100;
System.out.println(a == b); //true
Integer c = 100, d =100;
System.out.println(c == d); //true
int e = 1000, f =1000;
System.out.println(e == f); //true
Integer g = 1000, h =1000;
System.out.println(g == h); //false
为什么会有上述结果?
首先,int是基本数据来类型之一,而Integer是int的包装类。
一个小知识点,“==” 它是用来比较是否相等的:
- 如果“==”两边是基本数据类型,则会直接比较值;那int类型的100自然是等于100的,1000和1000自然也是相等的。
- 如果“==”两边是对象类型,则会比较两个对象的地址,不同的对象一般情况下地址当然是不同的,g和h就是两个不同的Integer对象,地址自然不同,也就不成立。
那为什么c和d会相等呢?
这涉及到java中一个自动装箱的概念,将基本数据类型转为包装类型叫做装箱,反过来叫拆箱。在对包装类进行一些算数运算时,会执行自动装箱和拆箱,而这个自动的范围是有限制的,对于int来讲,范围是 -128~127之间,于是Integer对象的值为100的时候可以执行自动拆箱,结果自然是100等于100,而值为1000时,超出了范围,不再比较值而是比较地址,于是结果是false。
int 和 Integer相关推荐
- int和Integer的区别在哪里
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象 ...
- java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)
Java基本数据类型与封装类型详解(int和Integer区别) 发布于 2020-4-19| 复制链接 摘记: int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Int ...
- java中的int、Integer 和 new Integer()的区分和比较
java中的int.Integer 和 new Integer()的区分和比较 一.问题提出: 1.1.问题一: int a = 2; Integer b = 2; Integer c = new I ...
- java int interger_java面试题之int和Integer的区别
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象的引 ...
- java int == integer_java int与integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...
- 基础回顾(正则、循环、和、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)
1. 正则表达式 1.1 Java中是如何支持正则表达式操作的? Java中的String类提供了支持正则表达式操作的方法,包括:matches().replaceAll().replaceFirst ...
- 二十八、Java中的Int和Integer的区别
@Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- 最明的int和Integer的区别
int和Integer的区别 1.Integer是int的包装类,int则是java的一种基本数据类型 2.Integer变量必须实例化后才能使用,而int变量不需要 3.Integer实际是对象 ...
- java int与integer的区别
int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...
- java 封装表单数据类型_Java基本数据类型与封装类型详解(int和Integer区别)
int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).in ...
最新文章
- 英特尔发布oneAPI软件计划及beta产品,面向异构计算提供统一可扩展的编程模型
- 【CV项目实战】纯新手如何从零开始完成一个工业级图像分割任务的整个流程?...
- OBJECT_ID 与objectproperty
- 初识ES-es与mysql的概念对比
- docker搭建webug4.0并——示范.支付漏洞,邮箱轰炸
- vim 编辑器的快捷键
- Anaconda 安装
- 获取windows所有端口
- CUDA中的复数定义、开内存空间以及运算
- JavaScript-浅谈DOM事件流
- java实验总结_java第一次实验总结第三周总结
- 安装配置Greenplum
- AndroidP 开机自启动程序
- 计算机 考 二级结构工程师,下半年河北省结构工程师二级专业结构:计算机软件的组成及功能考试试题.doc...
- MPSK 通信系统的 Monte Carlo 仿真
- kubernetes(centos7)域名解析失败
- 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
- AlexNet网络的搭建
- Authentication failed for git
- [嵌入式开发模块]JY61姿态角度传感器 驱动模块
热门文章
- python钉钉机器人发送excel附件_python 钉钉机器人发送消息
- .NET主流的ORM框架
- 【C语言】—— qsort()函数的使用
- Python 83道经典练习题,含答案!
- 【5. Redis的高并发高可用】
- 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】
- example如何使用?
- 如何在kubernetes中使用共享GPU资源
- Bootstarp:网站导航栏的编写设计
- SQL外部联合:right outer join、left outer join、full outer join