- 8种包装器类属于引用数据类型
- 作用:把基本数据类型转换成引用数据类型 ,可以执行一些方法。
- byte —>Byte(父类为Number)
- short—> Short(父类为Number)
- int —>Integer(父类为Number)
- long—> Long(父类为Number)
- float —>Float(父类为Number)
- double —>Double(父类为Number)
- char —>Character(父类直接为Object)
- boolean —>Boolean(父类直接为Object)
- 手动装箱和手动拆箱
- 手动装箱:
Integer v1 = new Integer(100);//基本数据类型转变为引用数据类型
Integer v1 = new Integer("100");
- 手动拆箱:
int num = v1.intValue();//由引用数据类型变为基本数据类型
同理,还有v1.doubleValue();
以及v1.floatValue();
- Integer 类常量:
- 一些常量:
// 通过访问包装类的常量,来获取最大值和最小值
System.out.println("int的最大值:" + Integer.MAX_VALUE);
System.out.println("int的最小值:" + Integer.MIN_VALUE);
System.out.println("byte的最大值:" + Byte.MAX_VALUE);
System.out.println("byte的最小值:" + Byte.MIN_VALUE);
- 自动装箱和自动拆箱
Integer v1 = 100;// v1保存内存地址 自动装箱
int num = v1;// 自动拆箱
int num1 = v1 + 1;//也可以,v1遇到基本数据类型,自动拆箱。
看下面代码:
Integer v1 = 1000;
Integer v2 = 1000;
boolean a = (v1 == v2);//a的值为false,因为对象内存地址不同。
注意:
在-128~127之间的值,使用 == 进行判断 值为true 。
因为在-128~127时,对象储存在方法区中的整数型常量池中,会复用已有对象,所以对象内存地址相同。
若超过这个范围,则会在堆区中创建一些对象,内存地址就不同了。所以比较Integer等类型的对象应该采用equals方法。
;
- Integer类中的方法:
- 静态方法
static int parseInt(String str);//将一个字符串变为整形值。
int num = Integer.parseInt("123456");//把String转变为int值
//int num = Integer.parseInt("中文");//"必须为一个数字"英文字符和中文字符都会抛出NumberFormatException 数字格式化异常
S.o.println(num);//
同理还有
Double.parseDouble(String str);
Float.parseFloat(String str);
-
进制转换
static String toBinaryString(int i) // 静态的:将十进制转换成二进制字符串。
static String toHexString(int i) // 静态的:将十进制转换成十六进制字符串。
static String toOctalString(int i) // 静态的:将十进制转换成八进制字符串。
-
Integer.valueof()方法
把int类型或者String类型转换成Integer类型
Integer.valueOf(int i)
Integer.valueOf(String str)
- String、Integer、int 三者之间类型转换
// String --> int
// Integer.parseInt()
int i1 = Integer.parseInt("100"); // i1是100数字
System.out.println(i1 + 1); // 101
// int --> String
//String.valueOf() 或者 123+""
String s2 = i1 + ""; // "100"字符串
System.out.println(s2 + 1); // "1001"
// int --> Integer
// 自动装箱 或者 Integer.valueOf()
Integer x = 1000;
// Integer --> int
// 自动拆箱 或者 name.intValue()
int y = x;
// String --> Integer
//Inter.valueOf
Integer k = Integer.valueOf("123");
// Integer --> String
//String.valueOf()
String e = String.valueOf(k);