欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java基础:(一)数据类型

程序员文章站 2022-06-04 11:05:53
一、包装类型 基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。 八个基本类型:boolean/1;byte/8;char/16;short/16;int/32;float/32;long/64;double/64 二、缓存池 new Integer(123)与 ......

一、包装类型

基本类型都有对应的包装类型,基本类型与其对应的包装类型之间的赋值使用自动装箱与拆箱完成。

八个基本类型:boolean/1;byte/8;char/16;short/16;int/32;float/32;long/64;double/64

二、缓存池

new integer(123)与integer.valueof(123)的区别在于,new integer(123)每次都会新建一个对象,而integer.valueof(123)可能会使用缓存对象,因此多次使用integer.valueof(123)会取得同一个对象的引用。

编译器会在自动装箱过程中调用valueof() 方法,valurof()方法的实现是先判断值是否在缓存池中,如果在的话就直接返回缓存池的内容,如果不在的话,就要新建。

java缓存池中基本类型的值:boolean:true和false;byte:-128-127;short:-128-127;int:-128-127 

integer a = integer.valueof(128);
integer b = integer.valueof(128);
system.out.println(a==b);    //值为false,因为128超出了缓存池中int表示的范围

integer a = integer.valueof(127);
integer b = integer.valueof(127);
system.out.println(a==b);    //值为true

integer a = 128;
integer b = 128;
system.out.println(a==b)    //值为false,自动装箱过程中编译器会调用valueof()方法