package Object;
/**
* 包装类的使用:
* 1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征
* 2.基本数据类型、包装类、String三者之间的相互转换
* @author tongy
*
*/
import org.junit.Test;
public class WrapperTest {
//基本数据类型->包装类:调用包装类的构造器
@Test
public void test1() {
int num=10;
// System.out.println(num.toString()); //基本数据类型没有类的特征
Integer num1=new Integer(num);
System.out.println(num1.equals(new Integer(10))); //true
Float f1=new Float(12.3);
Float f2=new Float("12.3");
System.out.println(f1.equals(f2)); //true
Boolean b1=new Boolean(true); //true
Boolean b2=new Boolean("true"); //true
Boolean b3=new Boolean("true123"); //false
Boolean b4=new Boolean("TrUe"); //true
Order1 order=new Order1();
System.out.println(order.isMale); //false
System.out.println(order.isFemale); //null
}
//包装类-->基本数据类型:调用包装类的xxxValue
@Test
public void test2(){
Integer i1=new Integer(4);
int i=i1.intValue();
System.out.println(i+2);
Float f1=new Float(2.0);
double f=f1.floatValue();
System.out.println(f+2);
}
//自动装箱与拆箱
@Test
public void test3() {
// int m=2;
// method(m); //并不是Object obj=m; 一个int型的数据不能直接赋给一个类
//自动装箱 基本数据类型-->包装类
int num=3;
Integer num1=num; //自动装箱
boolean b1=true;
Boolean b2=b1; //自动装箱
//自动拆箱 包装类-->基本数据类型
System.out.println(num1.toString());
int num3=num1; //自动拆箱
}
public void method(Object obj) {
System.out.println(obj);
}
//基本数据类型、包装类-->String转换 调用String重载的ValueOf(Xxx xxx)
@Test
public void test4() {
int num=12;
//方式一:连接运算
String str=num+"";
//方式二:ValueOf()
float f1=12.3f;
String string=String.valueOf(f1);
System.out.println(string);
Double d1=new Double(12.3);
String string2=String.valueOf(d1);
System.out.println(string2);
}
//String-->基本数据类型、包装类:调用包装类的方法:parseXxx()
@Test
public void test5() {
String s1="123";
//错误的情况
// int i1=(int)s1;
// Integer i2=(Integer)s1; //类强转必须两个类之间有子父类关系
//可能会报NumberFormatException
System.out.println(Integer.parseInt(s1));
String s2="true";
boolean b1=Boolean.parseBoolean(s2);
System.out.println(b1);
}
@Test
public void t1(){
Object o1=true?new Integer(1):new Double(2.0);
System.out.println(o1); //1.0
Object o2;
if (true) {
o2=new Integer(2);
}
else {
o2=new Double(3.0);
}
System.out.println(o2); //2
System.out.println(new Integer(4));
}
@Test
public void t2() {
Integer i=new Integer(1);
Integer j=new Integer(1);
System.out.println(i==j);//false
//Integer内部定义了IntegerCache结构,IntegerCache内部定义了一个Integer数组,保存了
//-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在-128~127中,可以直
//接使用数组中的元素,不用再去new。主要目的是提高效率
Integer m=1;
Integer n=1;
System.out.println(m==n);//true
Integer p=128; //相当于new了一个对象
Integer q=128;
System.out.println(p==q);//false
}
}
class Order1{
boolean isMale;
Boolean isFemale;
}
包装类的使用与一些面试
最新推荐文章于 2022-02-22 22:45:11 发布