java Integer范围详解
- 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范围详解相关推荐
- java Integer常用方法详解
好久没有更新了,这两天整理了一些封装对象 先来Integer吧 package com.String;//封装类 /** 比如int对应的类是Integer 这种类就叫做封装类*/ public cl ...
- Java Integer类详解
Integer 类在对象中包装了一个基本类型 int 的值.Integer 类对象包含一个 int 类型的字段.此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了 ...
- Java 线程池详解学习:FixedThreadPool,CachedThreadPool,ScheduledThreadPool...
Java常用的线程池有FixedThreadPool和CachedThreadPool,我们可以通过查看他们的源码来进行学习. Java的源码下载参考这篇文章:Java源码下载和阅读(JDK1.8) ...
- 4.6 W 字总结!Java 11—Java 17特性详解
作者 | 民工哥技术之路 来源 | https://mp.weixin.qq.com/s/SVleHYFQeePNT7q67UoL4Q Java 11 特性详解 基于嵌套的访问控制 与 Java 语言 ...
- java多线程学习-java.util.concurrent详解
http://janeky.iteye.com/category/124727 java多线程学习-java.util.concurrent详解(一) Latch/Barrier 博客分类: java ...
- 5W字高质量java并发系列详解教程(上)-附PDF下载
文章目录 第一章 java.util.concurrent简介 主要的组件 Executor ExecutorService ScheduledExecutorService Future Count ...
- Java 线程池详解及实例代码
转载自 Java 线程池详解及实例代码 这篇文章主要介绍了Java 线程池的相关资料,并符实例代码,帮助大家学习参考,需要的朋友可以参考下 线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时 ...
- java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦
一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...
- Java期末复习题详解
Java期末复习题详解 选择题 1 .class: .java: .cpp: .txt: 2 3 4 封装: 继承: 覆盖: 重载: 5 构造函数: 特点: 6 异常处理: 注:catch可以进行多重 ...
最新文章
- UVA11732 strcmp() Anyone?
- 「NLP」 聊聊NLP中的attention机制
- java中子类继承父类程序执行顺序问题
- android开发 Gradle多渠道打包以及集成360加固
- 逆向工程核心原理学习笔记(七):总结
- 前端学习(1832):前端面试题之跨域
- 人生中最【无用】的二十件事
- 计算机图形学生活应用,计算机图形学的应用实例(计算机图形作业).doc
- 用例不全,质量如何保证?
- 低频段用于4G,电信联通仍难改劣势
- 微信小程序npm引用ui框架
- java希腊字母表怎么打印_java 命令行窗口输出希腊字母表
- Android调用第三方app(Scheme隐式以及显示调用)
- Unity3D U3D安装教程
- angular 路由快照和 aggrid 结合后,导致aggrid 表头消失的问题
- NOI2003 智破连环阵
- 第一课 让人拍案叫绝的创意都是如何诞生的?
- mybatis(三) XML映射器之select、update、delete、insert标签
- Android 手机红外遥控器实现
- python qrcode 库的使用