Java ラッパークラスとは (intとIntegerの違い)
パッケージタイプの自動ボクシングとアンボクシング
包装类型自动装箱拆箱
- 装箱:从基本类型转换为对应的包装类对象。int----->Integer
- 拆箱:从包装类对象转换为对应的基本类型。Integer----->int
场景:通过文本框获得用户输入的数字数据,因为文本框里面是书写文本数据的,所以后台得到的都是字符串。如果想要对字符串中的数字进行运算,必须将字符串转换成数字。
怎么解决上述出现的问题呢?
Java中提供了相应的解决问题的对象。
基本数据类型包装类:Java将基本数据类型值封装成了对象。
封装成对象有什么好处?
可以提供更多操作基本数据的功能。
java语言属于一种面向对象的语言,会把真实存在的事物或信息都会进行描述并封装为类。
在java中存在8种基本数据类型,而java语言也把这8种基本数据类型进行了封装。称为:包装类。
学习Java语法基础的时候,我们知道Java中有8种基本数据类型,这些数据类型可以在内存中开辟出对应类型的空间,然后可以保存对应类型的数据。
8种基本数据类型,它们仅仅只能规定空间的类型,而我们不能使用面向对象的方式去使用8种基本类型创建对象(new int();不能这样去创建基本类型的对象)。
由于8种基本类型不能像类类型一样去new对象,于是Java就对每种基本类型给出了一个对应的类类型。
而java语言也把这8种基本数据类型进行了封装。称为:包装类。
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
我们就可以使用这8种基本类型对应的类类型操作基本类型。
而这8个对应的包装类型,都在java.lang包下。
基本类型转化为字符串和包装类时相同点如下
- 都使用了valueOf()方法,都是用类调用。一个用String类去调用,一个用包装类去调用
基本数值---->包装对象
包装类类去调用
Integer num = Integer.valueOf(1);
基本数值---->字符串String类去调用
String str = String.valueOf(2.2);
字符串和包装类转化为基本类型时区别如下
- 分别使用了intValue(),parseInt()方法。intValue()用包装类对象去调用,parseInt()用包装类去调用。
包装对象---->基本数值
包装类的对象去调用(包装类)
Integer num = 1
int i = num.intValue();
字符串---->基本数值包装类去调用(字符串)
String str1 = 3+"";
int i1 = Integer.parseInt(str1);
package wrapper;
public class Test {
public static void main(String[] args) {
//基本数值---->包装对象
//Integer num = 1;也一样
//Integer num = new Integer(1)也一样
Integer num = Integer.valueOf(1);
System.out.println("num = " + num);
//包装对象---->基本数值
int i = num.intValue();
System.out.println("i = " + i);
double v = num.doubleValue();
System.out.println("v = " + v);
System.out.println("");
//基本数值---->字符串
//String str = ""+2.2;也一样
String str = String.valueOf(2.2);
String str1 = String.valueOf(3);
System.out.println("str = " + str);
//字符串---->基本数值
double d = Double.parseDouble(str);
System.out.println("d = " + d);
int i1 = Integer.parseInt(str1);
System.out.println("i1 = " + i1);
}
}