Java Integer类的缓存】的更多相关文章

首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Integer c = 1000, d = 1000; System.out.println(c == d); Integer e = 100, f = 100; System.out.println(e == f); } } 输…
首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = 1000; System.out.println(a == b); Integer c = 1000, d = 1000; System.out.println(c == d); Integer e = 100, f = 100; System.out.println(e == f); } } 输…
一.Integer类的缓存机制 我们查看Integer的源码,就会发现里面有个静态内部类. public static Integer valueOf(int i) { assert IntegerCache.high >= 127; //当前值在缓存数组区间段,则直接返回该缓存值 if (i >= IntegerCache.low && i <= IntegerCache.high) return IntegerCache.cache[i + (-IntegerCach…
在开始详细的说明问题之前,我们先看一段代码 1 public static void compare1(){ 2 Integer i1 = 127, i2 = 127, i3 = 128, i4 = 128; 3 System.out.println(i1 == i2); 4 System.out.println(i1.equals(i2)); 5 System.out.println(i3 == i4); 6 System.out.println(i3.equals(i4)); 7 } 这段代…
Integer类 Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的字段. 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法. static int MAX_VALUE 保持 int 类型的最大值的常量可取的值为 231-1. static int MIN_VALUE 保持 int 类型的最小值的常量可取的值为 -231. static int SIZE…
package com.ilaw.boson.controller; public class Demo { public static void main(String[] args) { Integer a = new Integer(2000); int b =2000; Integer c =b; System.out.println(a == b);//true,Integer和int进行操作的时候,对a进行拆箱处理 System.out.println(b == c);//true,…
public static final int   MIN_VALUE = 0x80000000;  -2^31 public static final int   MAX_VALUE = 0x7fffffff; 2^31-1 public static String toString(int i, int radix) 该方法返回一个字符串形式的参数,第二个参数为指令的基数,将第一个参数转换为以第二个参数为基数的字符串 package com.yiibai; import java.lang.…
本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性.首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为.接着我们将学习这种实现的原因和目的.你可以先猜猜下面 Java 程序的输出结果.很明显,这里有一些小陷阱,这也是我们写这篇文章的原因. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 package com.javapaper…
转载自http://www.importnew.com/18884.html 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性.首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为.接着我们将学习这种实现的原因和目的.你可以先猜猜下面 Java 程序的输出结果.很明显,这里有一些小陷阱,这也是我们写这篇文章的原因. public class JavaIntegerCache { public sta…
本文由 ImportNew - 挖坑的张师傅 翻译自 javapapers.欢迎加入翻译小组.转载请见文末要求. 本文将介绍 Java 中 Integer 缓存的相关知识.这是 Java 5 中引入的一个有助于节省内存.提高性能的特性.首先看一个使用 Integer 的示例代码,展示了 Integer 的缓存行为.接着我们将学习这种实现的原因和目的.你可以先猜猜下面 Java 程序的输出结果.很明显,这里有一些小陷阱,这也是我们写这篇文章的原因. 1 2 3 4 5 6 7 8 9 10 11…
上一篇博客我们介绍了 java.lang 包下的 Object 类,那么本篇博客接着介绍该包下的另一个类 Integer.在前面 浅谈 Integer 类 博客中我们主要介绍了 Integer 类 和 int 基本数据类型的关系,本篇博客是从源码层次详细介绍 Integer 的实现. 1.Integer 的声明 public final class Integer extends Number implements Comparable<Integer>{} Integer 是用 final…
一.初识 1.介绍 int 是Java八大基本数据类型之一,占据 4 个字节,范围是 -2^31~2^31 - 1,即 -2147483648~2147483647.而 Integer 是 int 包装类. Integer 是类,默认值为null:int是基本数据类型,默认值为0. Integer 表示的是对象,用一个引用指向这个对象,而 int 是基本数据类型,直接存储数值. 二.自动装箱和拆箱 1.案例 先看如下代码执行结果: 1 int i1 = 59; 2 3 Integer i2 =…
java.lang 类 Integer java.lang.Object java.lang.Number java.lang.Integer 全部已实现的接口: Serializable, Comparable<Integer> public final class Integer extends Number implements Comparable<Integer> Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包括一个 int 类型…
这里介绍基本数据类型包装类,Integer是int的包装类, 其他的基本数据类型的包装类的方法和Integer的方法几乎一致,会一种即可全会 基本数据类型包装类的特点:用于在基本数据类型和字符串之间进行转换 这些类属于java的核心类,不需要import Integer类的方法: parseInt方法 示例: 将字符串变成基本类型 package demo; public class IntegerDemo { public static void main(String[] args) { f…
/ * int 仅仅是一个基本类型.int有对应的类类型,那就是Integer.  * 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型--包装类类型.各个基本类型分配封装与之对应的类类型来对基本类型数据更方便的操作.  * byte         Byte  * short         Short  * int Integer(这个看起来比较特殊)  * long Long  * float          Float  * doubl…
一: /*由数字字符串构造BigDecimal的方法 *设置BigDecimal的小数位数的方法 */ 注:BigDecimal在数据库中存的是number类型. import java.math.BigDecimal; //数字字符串 String StrBd="1048576.1024"; //构造以字符串内容为值的BigDecimal类型的变量bd BigDecimal bd=new BigDecimal(StrBd); //设置小数位数,第一个变量是小数位数,第二个变量是取舍方…
基本类型包装类概述 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据.常用的操作之一:用于基本数据类型与字符串之间的转换.基本类型和包装类的对应Byte,Short,Integer,Long,Float,Double,Character,Boolean Integer类 为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型 package cn.itcast_01; /* * 需求1:我要求大家把100这个数据的二进制,八进制,十六进制计算…
java基础-Integer类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字符串数据根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等.那么,想实现字符串与基本数据之间转换应该怎么办呢?接下来我们就一起学习一下Java的包装类吧. 一.基本类型包装类概述 Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:j…
对Integer类中的私有IntegerCache缓存类的一点记录 // Integer类有内部缓存,存贮着-128 到 127. // 所以,每个使用这些数字的变量都指向同一个缓存数据 // 因此可以直接使用 == 来比较是否相等 Integer a = 88; Integer b = 88; System.out.println(a == b); // true // 下面这个不在Integer缓存类里的数字,在每次赋值的时候都会新建一个对象存放 // 所以,它们不能使用 == 来判断是否相…
一.Integer类的使用方法 Interger:整数类型 1.属性. static int MAX_VALUE:返回最大的整型数: static int MIN_VALUE:返回最小的整型数: static Class TYPE :返回当前类型. 例子: System.out.println("Integer.MAX_VALUE: " + Integer.MAX_VALUE ); 结果为:Integer.MAX_VALUE: 2147483647 2.构造函数. Integer(in…
Integer类简介: Integer类是基本数据类型int的包装器类,是抽象类Number的子类,位于java.lang包中. Integer类在对象中包装了一个基本类型int的值,也就是每个Integer对象包含一个int类型的字段.在Integer源码中如下定义:private final int value; 字段: [static int]  MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值. [static int]  MIN_VALUE:值为 -2…
学习前我们先看一个笔者之前项目踩过的坑 public static void main(String[] args) { Integer a = 127; Integer b = 127; System.out.println(a==b)://true Integer c = 128; Integer d = 128; System.out.println(c==d); //false } 看到这个结果,有些人可能比较惊讶,我也很惊讶,还中过大招,这都是源码看的不仔细的结果 还是直接上截图: 这…
我们先看一段代码: public class TestAutoBoxing { public static void main(String[] args) { //-128到127之间 Integer a=127; Integer b=127; System.out.println(a==b); Integer aa=128; Integer bb=128; System.out.println("aa==bb"+(aa==bb)); } } 再看看运行结果: 为什么会这样? Int…
Math Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数. 与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同的结果. 这种放松允许在不需要严格再现性的情况下执行更好的实现. 默认情况下,许多Math方法只需调用中的对应方法是StrictMath组织落实. 鼓励代码生成器使用平台特定的本机库或微处理器指令(如果可用),以提供Math方法的Math实现. 这种更高性能的实现仍然必须符合Math的Math .…
Java.lang.Integer.toString(int i,int radix)方法可以实现将一个int类型的10进制的数据转换为指定进制的数据. api文档中介绍: 返回第二个参数指定的基数中第一个参数的字符串表示形式. 如果基数小于Character.MIN_RADIX(2)或大于Character.MAX_RADIX(36),则改用基数10. 如果第一个参数为负,则结果的第一个元素为前加上一个负号"-".如果第一个参数不为负,则结果中不会出现负号. 结果的其余字符代表第一个…
Integer 是lang包下的工具类 为了更加熟悉Integer中的方法使用和理解 进行了一部分代码和原代码的总结 Intrger工具类方法: * * int parseInt(String s) 将字符串转化为int; * toBinaryString(int i) 转换成二进制 * static String toHexString(int i) 转换成16进制 * static String toOctalString(int i) 转换为8进制 * toString(int i, in…
转载自http://www.hollischuang.com/archives/1058 Integer 类在对象中包装了一个基本类型 int 的值.Integer 类型的对象包含一个 int 类型的字段. 此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法. 类定义 public final class Integer extends Number implements Comparable<Integer>…
在讲解 Integer 之前,我们先看下面这段代码: public static void main(String[] args) { Integer i = 10; Integer j = 10; System.out.println(i == j); Integer a = 128; Integer b = 128; System.out.println(a == b); int k = 10; System.out.println(k == i); int kk = 128; System…
  英文原文:Java Integer Cache 翻译地址:Java中整型的缓存机制 原文作者:Java Papers 翻译作者:Hollis 转载请注明出处. 本文将介绍Java中Integer的缓存相关知识.这是在Java 5中引入的一个有助于节省内存.提高性能的功能.首先看一个使用Integer的示例代码,从中学习其缓存行为.接着我们将为什么这么实现以及他到底是如何实现的.你能猜出下面的Java程序的输出结果吗.如果你的结果和真正结果不一样,那么你就要好好看看本文了. package c…
Object类 Object 是类层次结构的根类.每个类都使用 Object 作为超类,所有对象(包括数组)都实现这个类的方法.了解Object的方法是很有必要的. protected Object clone() //创建并返回此对象的一个副本,用于克隆对象. boolean equals(Object obj) //判断当前对象与给定对象obj是否“相等”. protected void finalize() //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法. C…