1. Integer包装类在一定范围内生成的对象是相等的,在范围外则是不等的,这个范围是[-128,128)。

public static void main(String[] args){Integer a = 4;Integer b = 4;System.out.println(a==b);//trueInteger c = 159;Integer d = 159;System.out.println(c==d);//false}

这里我们要注意(1)Integer a = Integer.valueOf(4)。而不是(2)Integer a = new Integer(4)。这两种情况给是不相同的。

  • (2)是新声明出一个对象。每声明出一个对象就会在堆内存中创建一个属于这个对象的地址。让我们看看代码块及运行结果
public static void main(String[] args){Integer a = 4Integer b = 4;Integer b1 = new Integer(4);Integer b2 = new Integer(4);System.out.println(b1==b2);//falseSystem.out.println(b==b1);//falseSystem.out.printlm(b==a);//true}

从代码中我们可以看出b1,b2指向的地址是不同的。
b与b1,b2的也是不同的。但是与a是相同的。这是为什么呢
这就要看value这个方法的源代码了

public static Integer valueOf(int i) {if (i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i + (-IntegerCache.low)];return new Integer(i);}

从源代码中我们可以看出传进来的i值大小在范围内[-128,128)之间则返回数组cache中已有的值。若不满足在新建一个Integer对象。我们可以理解为a,b都指向的是同一个地址(当数值相同时)。

java Integer范围详解相关推荐

  1. java Integer常用方法详解

    好久没有更新了,这两天整理了一些封装对象 先来Integer吧 package com.String;//封装类 /** 比如int对应的类是Integer 这种类就叫做封装类*/ public cl ...

  2. Java Integer类详解

    Integer 类在对象中包装了一个基本类型 int 的值.Integer 类对象包含一个 int 类型的字段.此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了 ...

  3. Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...

    Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...

  4. 4.6 W 字总结!Java 11—Java 17特性详解

    作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...

  5. java多线程学习-java.util.concurrent详解

    http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...

  6. 5W字高质量java并发系列详解教程(上)-附PDF下载

    文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...

  7. Java 线程池详解及实例代码

    转载自  Java 线程池详解及实例代码 这篇文章主要介绍了Java 线程池的相关资料,并符实例代码,帮助大家学习参考,需要的朋友可以参考下 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时 ...

  8. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  9. Java期末复习题详解

    Java期末复习题详解 选择题 1 .class: .java: .cpp: .txt: 2 3 4 封装: 继承: 覆盖: 重载: 5 构造函数: 特点: 6 异常处理: 注:catch可以进行多重 ...

最新文章

  1. UVA11732 strcmp() Anyone?
  2. 「NLP」 聊聊NLP中的attention机制
  3. java中子类继承父类程序执行顺序问题
  4. android开发 Gradle多渠道打包以及集成360加固
  5. 逆向工程核心原理学习笔记(七):总结
  6. 前端学习(1832):前端面试题之跨域
  7. 人生中最【无用】的二十件事
  8. 计算机图形学生活应用,计算机图形学的应用实例(计算机图形作业).doc
  9. 用例不全,质量如何保证?
  10. 低频段用于4G,电信联通仍难改劣势
  11. 微信小程序npm引用ui框架
  12. java希腊字母表怎么打印_java 命令行窗口输出希腊字母表
  13. Android调用第三方app(Scheme隐式以及显示调用)
  14. Unity3D U3D安装教程
  15. angular 路由快照和 aggrid 结合后,导致aggrid 表头消失的问题
  16. NOI2003 智破连环阵
  17. 第一课 让人拍案叫绝的创意都是如何诞生的?
  18. mybatis(三) XML映射器之select、update、delete、insert标签
  19. Android 手机红外遥控器实现
  20. python qrcode 库的使用

热门文章

  1. RMP-SMART操作文档
  2. 转贴:《玻璃球游戏》的规则
  3. 在东京大学感受_我们想在东京在线游戏展上看到的10件事
  4. 兰德报告《现代战争中的全域联合指挥控制--一种确定和开发人工智能应用的分析框架》...
  5. 箭头函数为什么不能当做构造函数
  6. matlab 密度热力图,使用matplotlib绘制热力图
  7. cmi编码实验_cmi实验.ppt
  8. 大数据就业前景怎么样 怎么快速入门相关行业
  9. Redis详解(六)渐进式rehash机制
  10. 转:美国人输得只剩裤衩!