Java中关于包装类的一些补充

包装类

  • 8种基本数据类型的相应的引用类型————基本数据类型的包装类

byte —— Byte
short —— Short
int —— integer
long —— Long
char ——Character
float —— Float
double —— Double
boolean —— Boolean

  • 自动装箱
    基本类型变量直接赋给对应的包装类变量
Integer inobj = 5 ;
  • 自动拆箱
    包装类对象直接赋给一个对应的基本类型变量
int i = inobj ;
  • 包装类提供的两种方法:arseXxx(String s ) 和 valueOf ()
    用于将基本类型变量转换成字符串
	String s = "666";
	int i_1 = Integer.parseInt(s);
	int i_2 = Integer.valueOf(s);
	============================
	String s_1 = "6.666";
	float f_1 = Float.parseFloat(s_1);
	float f_2 = Float.valueOf(s_1);
	============================
	String s_2 = String.valueOf(2.6666f);
	String s_3 = String.valueOf(3.6666);
	String s_4 = String.valueOf(true);

基本变量 —> 字符串

  • valueof()
  • 在值后面加上 “” 连接运算,回自动把基本类型变量转换成字符串

字符串 —> 基本变量

  • parseXxx()
  • valueof()

关于比较

包装类的实例和数值类型的值是可以直接进行比较的,底层比较是直接取出包装类实例所包装的数值来进行比较的。

Integer a = Integer.valueof(6;
system.out.println(a > 5.0; //返回true

两个包装类 实例比较,只有两个包装类引用指向同一个对象的时候才会返回True

Integer i_1 = 2 ;
Integer i_2 = 2 ;
system.out.println(i_1 == i_2) //返回true
================================
Integer i_3 = 128;
Integer i_4 = 128;
system.out.println(i_3 == i_4);//返回false

原因:

1,在Integer类中,系统会自动把-128到127之间的整数自动装箱成Integer实例,并且放入了一个名为cache的数组中缓存下来

2,当以后再添加一个范围在-128到127之间的整数自动装箱为Integer实例的时候,永远都是指向对应数组元素的地址,所以会相等

3,但是,当你每次将一个-128到127范围之外的整数自动装箱为Integer实例的时候,总是重新创建一个Integer实例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章