关于 Integer 值比较的问题
2024-10-19 00:26:00
今天刚好遇到这样的问题,别的不说,先上代码
public class TestInteger { public static void main(final String[] args) {
final Integer a = 500;
final Integer b = 500;
final Integer c = 100;
final Integer d = 100;
System.out.println("a=b :" + (a == b));
System.out.println("c=d :" + (c == d));
} }
大家看一下这一段代码,是不是很简单呢。大家心里也有答案了吧?好的,看一下我们运行之后的答案
a=b :false
c=d :true
是不是有点意外,这是为什么呢?来简单说一下这个
- java中Integer类型对于-128-127之间的数是缓冲区取的,所以用等号比较是一致的。
- 但对于不在这区间的数字是在堆中new出来的对象。所以地址空间不一样,也就不相等。
所以以后如果我们碰到这种需要怎么去比较两个integer里面的值呢。
Integer b3=60,这是一个装箱过程也就是Integer b3=Integer.valueOf(60)。以后碰到Integer比较值是否相等需要用intValue()。 这样才是比较两个值。如果没用就相当于两个对象的存储地址比较。
最新文章
- 12月5日PHPCMS替换主页
- HashMap,Hashtable,TreeMapMap
- 一个人的 ClojureScript 技术栈
- 优化后的 google提供的汉字转拼音类(针对某些htc等手机的不兼容情况)
- 学习OpenCV——BOW特征提取函数(特征点篇)
- apache配置常用模块
- MFC学习 socket
- MySQL监控工具-orztop
- 幻灯片(jquery实现)
- http协议分析工具
- 实现android activity之间的跳转
- git 查看某个文件的历史修改版本
- Day2_数字类型_字符串类型_列表类型_元组_字典_集合_字符编码_文件处理
- 浅谈JavaScript和DOM中的类数组对象
- 【Linux】查看系统位数
- [LeetCode] Special Binary String 特殊的二进制字符串
- 【C#复习总结】细说匿名方法
- MySQL 组提交(group commit)
- 用PHP纯手工打造会动的多帧GIF图片验证码
- SCRIPT5009: “Sys”未定义 部署.net ajax 解决方案
热门文章
- 2017/11/25 2D变换
- window.print()打印页面指定内容(使用iframe保证原页面不失效)
- 【Python】 系统配置/进程等信息查看 psutil
- .NET Core快速入门教程 3、我的第一个.NET Core App (CentOS篇)
- 【js Date】时间字符串、时间戳转换成今天,明天,本月等文字日期
- spring-boot-devtools
- 网站加速与Linux服务器防护
- python多进程并发redis
- 关于如何在mac系统上安装Git并在码市上建立项目
- Maven+SSM框架搭建【spring+springmvc+mybatis】