public static void main(String[] args) {
Integer in1 = 128;
Integer in2 = 128;
System.out.println(in1 == in2 );
}
会发现该代码在复值不同的时候返回的结果是不相同。
以上的代码要分析原理的话那么需要进行源码的调试,那么就需要关联源码。
public static Integer valueOf(int i) {
if(i >= -128 && i <= IntegerCache.high)
return IntegerCache.cache[i + 128];
else
return new Integer(i);
}
如果指定值在-128~127之间那么直接返回的是该对象已经缓存好的Integer对象,那么同值的Integr是同一个对象,如果不在那么直接new出新的对象直接返回一定不等。

Integer 内部实现的更多相关文章

  1. Integer判等的陷阱:你知道Integer内部高速缓冲区IntegerCache吗?

    https://blog.csdn.net/magician_Code/article/details/51469101 我们先来看看下面代码的运行情况: public static void mai ...

  2. 通过本质看现象:关于Integer受内部初始化赋值范围限制而出现的有趣现象

    左手代码,右手文章.——朱季谦 这是我的第一篇技术博客,作为一名技术小菜鸟,总体而言显得很拙见,但也算是成长路上的一个小脚印,希望能在以后的日子里,可以对JAVA技术有一个更加深入的思考与认识. 前几 ...

  3. java常用类:1。包装类(以Integer类为例)2.String类 3.StringBuffer

     包装类 把八大基本数据类型封装到一个类中,并提供属性和方法,更方便的操作基本数据类型. 包装类的出现并不是用于取代基本数据类型,也取代不了. 包装类位于java.lang包中. Number 类 N ...

  4. 工作随笔—integer对象比较

    问题:对于integer对象,当比较2==2的时候,返回的值是true还是false?当比较2000==2000的时候,返回的值是true还是false? 回答:当比较2==2的时候,返回的值是tru ...

  5. Integer、String、StringBuffer、StringBuilder

    Integer Interger 是int基本数据类型的包装类,在Integer内部封装了一个final int value的属性. 构造方法: Integer类提供了两种构造方法:它们都会返回一个I ...

  6. JDK源码分析 – Integer

    Integer类的申明 public final class Integer extends Number implements Comparable<Integer> { … } Int ...

  7. 谈谈Integer中的静态类IntegerCache

            学习的本质就是一个赋值的过程,用新知识来覆盖你的旧知识或者无知(null).掌握知识是自己的, 分享知识,才能帮助更多的人,创造更大的价值.学贵以恒,以此自勉,与君共享.----曦阳X ...

  8. Java学习之==>int和Integer的区别和联系

    一.区别 1.类型 int是java中原始八种基本数据类型之一: Integer是一个类,包装整型提供了很多日常的操作: 2.存储位置和大小 int是由jvm底层提供,由Java虚拟机规范,int型数 ...

  9. Integer类源码浅析

    1.首先Integer提供了两类工具类,包括把一个int类型转成二进等, 其实执行转换算法只有一个方法: public static String toString(int i, int radix) ...

随机推荐

  1. window.open("url?param="+paramvalue) 服务端 乱码问题解决

    window.open("url?param="+paramvalue)传递参数出现乱码,在客房端显示是正常的,可是到服务端就是乱码. 1. 利用一个js在客户端转码的函数,esc ...

  2. JAVA复制文件最快的算法

    /** * 复制文件 * * @param srcFile * 源文件File * @param destDir * 目标目录File * @param newFileName * 新文件名 * @r ...

  3. C#获取网页内容,并且处理正确编码

    控制台调用static void Main(string[] args) { string code = GetEncodings("http://www.cnblogs.com" ...

  4. 用java解析在OpenStreetMap上下载的地图数据

    采用dom4j解析下载的xml文件,java程序如下: package gao.map.preprocess; import java.io.BufferedWriter; import java.i ...

  5. JavaScript中定义对象的四种方式

    最近在阅读< JavaScript 高级程序设计>,未免遗忘读过的内容,就打算以博客的形式做些读书笔记.今天介绍的是 JavaScript 中的四种定义对象的方法,除了这四种方法,还有工厂 ...

  6. Redis自学笔记 --Hash、List、Set类型简述

    Hash类型                                                                                    hset key f ...

  7. 网络结构设计——负载均衡之LVS学习笔记(三)

    LVS按个人理解的说就是将一台Linux服务器当作路由器等功能的技术.LVS---Linux虚拟服务器. LVS实现了三种IP负载均衡技术VS/NAT.VS/TUN.VS/DR. 今天简单分享一下我在 ...

  8. XXX全球 IP 地址库

    XXX全球 IP 地址库 Bulgaria 93.123.23.1 93.123.23.2 93.123.23.3 93.123.23.4 93.123.23.5 93.123.23.6 93.123 ...

  9. JavaScript实现把数字转换成中文

    /** * 数字转换汉字大写 * @constructor * 用法示例:new NumberToChinese(122222).toUpper(); new NumberToChinese(1222 ...

  10. mondrian4 kylin saiku 整合踩坑记录

    1 先说了版本: Mondrian 4 .kylin2.2 .saiku 3.15 2 saiku 3.15 使用的xml是基于 mondrian4 的schema的xml.判断是不是mondrian ...