(红字是包装类名字与基本数据类型有区别) 它们的父类都为Number
基本类型、包装类、String类之间的相互转换 2. 基本数据类型转换为包装类:调用包装类的构造器 public class WrapperTest {
//基本数据类型--->包装类:调用包装类的构造器
@Test
public void test1(){
int num1 = 10;
//System.out.print1n(num1.toString());
Integer in1 = new Integer(num1);
System.out.print1n(in1.toString());
Integer in2 = new Integer("123");
System.out.println(in2.toString());
调用Integer中的构造器,其中存在两个构造器 Integer(int value) Integer(String s)
但是第二个String中只能放入数字。
//报异常
//
Integer in3 = new Integer("123abc");
//System.out.print1n(in3.toString());
Float f1 = new Float(12.3f);
Float f2 = new Float("12. 3");
System.out.print1n(f1); // 12.3
System.out.println(f2); // 12.3
2.1 boolean类型需要注意!
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("TrUe");
System.out.print1n(b2);//true
Boolean b3 = new Boolean("true123");
System.out.print1n(b3);//false
其中boolean的源码如下:
equalsIgnoreCase()忽略大小写,只要是true就行
Order order = new Order();
System.out.println(order.isMale);//false
System.out.print1n(order.isFemale);//nu11
}
}
class Order{
boolean isMale;
Boolean isFemale; //这里是Boolean类
{
因为现在isFemale前是用类定义了,引用数据类型,初始值为null
基本数据类型boolean初始化值为false
3. 包装类转换为基本数据类型: 调用包装类xxx的xxxValue( )Integer in1 = new Integer(12); int il = in1.intValue(); System.out.println(i1 + 1);//输出13 ,可以做运算 Float f1= new Float(12.3); f1.floatValue();
.intValue() .floatValue()
4. 新特性: 自动装箱、自动拆箱 4.1 自动装箱:基本数据类型→包装类public void test3(){
int num1=10;
//基本数据类型-->包装类的对象
method(num1); // 输出为10
}
public void method(object obj){
System.out.print1n(obj);
}
上例中,int 是基本数据类型,而在method方法中参数为Object类,而int与Object并无关系,如何实现?
-
基本数据类型与Object类确实没有关系
-
但是基本数据类型存在包装类 上面int的包装类似Integer, Integer是Object的类 →通过自动装箱实现:
int num2=10; Integer in1=num2;//自动装箱
-
这样就可以实现method方法
-
其他也一样 int num2=10;Integer in1=num2;//自动装箱
int num3=in1;5. 基本数据类型、包装类 →String类型: 调用String重载的valueOf(Xxx xxx)
int num1=10; //方式1:连接运算 String str1 = num1 + ""; //输出为String类型 //方式2:调用String的valueOf(Xxx xxx) float f1=12.3f; String str2 = String.valueOf(f1);//"12.3" Double d1 = new Double(12.4); String str3=String.valueof(d1); //选择适当的参数类型,如下图 System.out.print1n(str2); System.out.print1n(str3);//"12.4"6. String类型 → 基本数据类型、包装类:调用包装类的Xxx(包装类).parseXxx(数据类型)()
String str1 ="123"; //错误的情况: //int num1= (int)str1; 不能强转 //Integer in1 = (Integer)str1; integer 和 str1的类型没有子父类的关系 int num2 = Integer.parseInt(str1); System.out.println(num2 + 1);//输出124
Integer.parseInt() Boolean.parseboolean()
boolean类型比较特殊, 字符串参数只有完全为true时才返回true,否则返回false
String str2="true1"; boolean b1 = Boolean.parseBooLean(str2); System.out.println(b1);//false



