Integer中1000==1000为false而100==100为true
查看Integer.java类,会发现有一个内部私有类,IntegerCache.java,它缓存了从-128到127之间的所有的整数对象。
如果在这个区间内,他就会把变量当做一个变量,放到内存中;但如果不在这个范围内,就会去new一个Integer对象。
所以例子中i1和i2指向了一个对象。因此100==100为true。
比较Integer的值,比较靠谱的是通过Integer.intValue()这样出来的就是int值,就可以直接比较了,或者equals()比较。
/**
* Created by hunt on 2017/6/3.
*/
public class TestInteger {
public static void main(String[] args) {
Integer i1 = 100, i2 = 100;
System.out.println(i1 == i2);//true
Integer i3 = 1000, i4 = 1000;
System.out.println(i3 == i4);//false System.out.println(i3.intValue() == i4.intValue());//true
System.out.println(i3.equals(i4));//true //Integer 与 int 类型比较(==)比较的是值。
int i5 = 1000;
System.out.println(i3 == i5);//true }
}
Integer中1000==1000为false而100==100为true的更多相关文章
- js中的0就是false,非0就是true及案例
在处理js代码判断真假时经常会这么写. 但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了. 已经被这个坑过 ...
- js中的0就是false,非0就是true。
在处理js代码判断真假时经常会这么写. var vale = fun();//从某个地方获取的值. if(!value){ 进入这里表示value为false或不存在 }但fun()可能得到的是数字0 ...
- 奇怪的Java题:为什么1000 == 1000返回为False,而100 == 100会返回为True?
如果你运行如下代码: 1 2 3 4 Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = ...
- jvm常量池 vsv为什么1000 == 1000返回为False,而100 == 100会返回为True?
在jvm规范中,每个类型都有自己的常量池.常量池是某类型所用常量的一个有序集合,包括直接常量(基本类型,String)和对其他类型.字段.方法的符号引用.之所以是符号引用而不是像c语言那样,编译时直接 ...
- 【Todo】Java学习笔记 100==100 & Reflection API & Optional类详解 & DIP、IoC、DI & token/cookie/session管理会话方式
为什么1000 == 1000返回为False,而100 == 100会返回为True? Link Java Reflection API:Link Java8 Optional 类深度解析: L ...
- [转载] 在java中为什么变量1000 = 1000 返回false,但是100=100返回true?
ps:题目的意思是指定义相同内容的不同变量之间的==比较.如果直接比较(100 == 100)的结果是true. 运行以下代码: Integer a = 1000, b = 1000; System. ...
- 为什么 Java中1000==1000为false而100==100为true?AND "2+2=5"?
前提:我们知道,如果两个引用指向同一个对象,用==表示它们是相等的.如果两个引用指向不同的对象,用==表示它们是不相等的,即使它们的内容相同. 运行下面代码:
- Java-学习日记(100 == 100为true,1000 == 1000却为false?)
Integer底层设计 100 == 100为true,1000 == 1000却为false? 之前也写过String的==与equals的注意点,这次写下Integer的底层设计,不妨先运行下下面 ...
- Xcode 8 在XIB中布局View尺寸1000*1000
Xcode 8 中XIB布局变动,在界面未展示之前,所有的View的布局都会给一个1000*1000的初始值,查看视图层级可以看到View拖得很长, 有时候我们在ViewDidLoad中布局的时候会使 ...
随机推荐
- 实验作业:使gdb跟踪分析一个系统调用内核函数
实验作业:使gdb跟踪分析一个系统调用内核函数(我使用的是getuid) 20135313吴子怡.北京电子科技学院 [第一部分] 根据视频演示的步骤,先做第一部分,步骤如下 ①更新menu代码到最新版 ...
- 第二个Sprint冲刺第 九天(燃尽图)
- ELK 性能(2) — 如何在大业务量下保持 Elasticsearch 集群的稳定
ELK 性能(2) - 如何在大业务量下保持 Elasticsearch 集群的稳定 介绍 如何在大业务量下保持 Elasticsearch 集群的稳定? 内容 当我们使用 Elasticsearch ...
- Linux命令(十三) 建立目录 mkdir 删除目录 rmdir
一.建立目录 mkdir 命令简介 mkdir 命令用于创建指定的目录.创建目录时当前用户对需要操作的目录有读取权限.如果目录已经存在,会提示报错并推出. mkdir 可以创建多级目录. 常用参数说明 ...
- Python【知识点】面试小点列表生成式小坑
1.问题 有这么一个小面试题: 看下面代码请回答输出的结果是什么?为什么? result = [lambda x: x + i for i in range(10)] print(result[0]( ...
- youcompleteme 自动补全
1. 拷贝配置文件 cp ~/.vim/bundle/YouCompleteMe/cpp/ycm/.ycm_extra_conf.py ~/.vim/.ycm_extra_conf.py 2. 修改配 ...
- 学习Spring Boot:(十九)Shiro 中使用缓存
前言 在 shiro 中每次去拦截请求进行权限认证的时候,都会去数据库查询该用户的所有权限信息, 这个时候就是有一个问题了,因为用户的权限信息在短时间内是不可变的,每次查询出来的数据其实都是重复数据, ...
- 手速太慢QAQ
显然D是个细节题,但是还剩1h时看眼榜还没人过EF,只好冷静写D,大概思路是任何时候如果min(n,m)<=2,max(n,m)<=4暴搜,否则直接贪心是很对的,即第一步让S.T长度平均化 ...
- 【洛谷P1522】牛的旅行
题目大意:给定一个 N 个顶点的无向图,图中有若干联通块,现定义联通块的直径为该联通块中距离最远的两个点的距离,定义无向图的直径为这个图中所有联通块直径的最大值.现在在图上加一条边,使得两个本不连通的 ...
- wps相关问题
1 总汇 1.1 关闭wps中“我的wps”选项卡 我记得之前的WPS都是可以设置的不启动"我的WPS"的,但是最新版本中好象没有发现这个设置,反正小编是没找到,但是这并不影响我们 ...