在Java中,很多类的方法都需要接收引用类型的对象,此时就无法将基本类型的数据传入。
为了解决这样的问题,JDK中提供了一系列的包装类——————将基本数据类型的 值 转化为引用数据类型的 对象。
public class Demo01 {
public static void main(String[] args) {
typeChange();
stringToInt();
}
//"装箱"与"拆箱"
public static void typeChange(){
//装箱————将基本数据类型int 转化为引用类型Integer
int a = 10;
Integer integer1 = Integer.valueOf(a);
System.out.println(integer1);
/*这种装包方法已不适合使用——————Integer integer = new Integer(a);
It is rarely appropriate to use this constructor.
The static factory valueOf(int) is generally a better choice, as it is likely
to yield significantly better space and time performance.
很少适合使用这个构造函数。静态工厂valueOf(int)通常是更好的选择,产生更好的空间和时间性能*/
//-----------------------------------------------------------------------------------
//拆箱————将引用数据类型Integer转化为基本数据类型 int
Integer integer2 = Integer.valueOf(20);
int b = 20;
//intValue方法将Integer 转 int
int sum = b + integer2.intValue();
System.out.println(sum);
}
//parseInt静态方法——将String 转成Int
public static void stringToInt(){
int height = Integer.parseInt("5");
int weight = Integer.parseInt("6");
for (int i = 0; i < height; i++) {
StringBuffer stringBuffer = new StringBuffer();
for (int j = 0; j < weight; j++) {
stringBuffer.append("*");
}
System.out.println(stringBuffer);
}
}
}
package com.yushifu.javaAPI.packageclass;
public class Demo02 {
public static void main(String[] args) {
//包装类Tips:
//1,包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型的值
//2.除了Character外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,
// 但s不能为null ,且必须是可以解析为相应基本类型的数据,否则虽然编译通过,但是运行时会报错
int a = Integer.valueOf("123");//true
//Exception in thread "main" java.lang.NumberFormatException: For input string: "12a"
int b = Integer.valueOf("12a");//false
//3.除了Character外,包装类都有parseXxx(String s)的静态方法,将字符串转换为对应的基本类型数据
// 但s不能为null ,且必须是可以解析为相应基本类型的数据,否则虽然编译通过,但是运行时会报错
int m = Integer.parseInt("567");
int n = Integer.parseInt("12q");//false
//4.JDk5.0后 可以实现自动拆箱和装箱
int q = 10;
Integer p = q;//自动装箱
Integer k =10;
int l = k;//自动拆箱
}
}