目录
二、以Interger 为例子将String 与 int 相互转换
一、为什么要有基本类型包装类?
在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等。那么,想实现字符串与基本数据之间转换怎么办呢?
Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:java将基本数据类型值封装成了对象。封装成对象有什么好处?可以提供更多的操作基本数值的功能。
将字符串类型转换为这8中基本类型就需要用到基本类型包装类
其中注意int 的基本类型包装类为Integer,char的基本类型包装类为Character
二、以Interger 为例子将String 与 int 相互转换
1.String--->int
构造函数:
Integer(int i);
Integer(Sting s);
构造对象后可以使用,对象调用inValue方法返回int 类型的数值
int | intValue() 以 int 类型返回该 Integer对象 的值。 |
public static void main(String[] args) {
Integer in1 = new Integer(1);
Integer in2 = new Integer("2");
int i1 = in1.intValue();
int i2 = in2.intValue();
}
在不创建对象的情况下使用静态方法将String ---->int
|
2.int--->String
成员方法调用
String | toString() 返回一个表示该 Integer 值的 String 对象。 |
静态方法调用
static String | toString(int i) 返回一个表示指定整数的 String 对象。 |
static String | toString(int i, int radix) 返回用第二个参数指定进制数表示的第一个参数的字符串表示形式。 |
static String | toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。 |
static String | toHexString(int i) 以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。 |
static String | toOctalString(int i) 以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。 |
三、字段
static int | MAX_VALUE 值为 231-1 的常量,它表示 int 类型能够表示的最大值。 |
static int | MIN_VALUE 值为 -231 的常量,它表示 int 类型能够表示的最小值 |
四、自动装箱和自动拆箱
好处:基本类型和引用类型直接运算
装箱:将基本类型直接变成引用类型
拆箱:将引用类型变回基本类型
public static void main(String[] args) {
Integer in1= 1;
//in1+1 = intValue()+1; 自动拆箱,将Integer对象使用intValue()拆箱
//将int 对象自动装箱成 Integer对象
in1 = in1+1;
}
弊端:可能会出现空指针的异常
五、自动装箱的题目
1.==
2.equals
3.数据在byte范围内,JVM不会重新new 对象
public static void main(String[] args) {
//数据在byte范围内,JVM不会重新new 对象
Integer in1 = 1;
Integer in2 = 1;
//==比的是对象的地址
System.out.println(in1 == in2);
//equals比的是对象的内容
System.out.println(in1.equals(in2));
System.out.println("----------------------");
//129大于byte的范围,所以创建两个不同的对象
Integer in3 = 129;
Integer in4 = 129;
//两个对象所以,两个对象的地址是不同的,false
System.out.println(in3 == in4);
//两个对象,但是equals()比较的是对象的内容,对象的内容是129相同的,true
System.out.println(in3.equals(in4));
}