包装类
- 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实例