Java包装类、基本数据类型、String的关系及互相转换

基本数据类型、包装类、String三者之间的转换

学习包装类,图片及代码来自尚硅谷教育,侵删

包装类是什么?为什么要用包装类?

java提供了8中基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征

基本数据类型-->包装类

调用构造器

//基本数据类型 ---> 包装类
//具体方法: 调用包装类的构造器,可以是数值,可以是字符串
 @Test
    public void test1() {
        int num1 = 10;
        //不能这么写,因为基本数据类型不是Object的子类
//        System.out.println(num1.toString());
        Integer integer = new Integer(num1);
        System.out.println(integer.toString());//包装类可以调用toString方法
        System.out.println(integer.doubleValue() );//可以输出为其他格式
        //构造器参数可以是字符串
        Integer integer1 = new Integer("123");
        System.out.println(integer1);
        //报异常
//        Integer integer2 = new Integer("123abc");

        Float float1 = new Float(12.3f);
        Float float2 = new Float("12.3f");
        System.out.println(float1);
        System.out.println(float2);
        Float float3 = new Float(12.3);
        System.out.println("参数不带f时"+float3);

        Boolean b1 = new Boolean(true);
        Boolean b2 = new Boolean("true");
        Boolean b3 = new Boolean("true123");//不会抛异常(注意和上面的区别)
        System.out.println("输出是 " + b3);
        //Boolean 只要不是 true(不管大小写) 都会是false,包括空值

    }

运行结果

包装类-->基本数据类型

调用包装类的xxxValue()

//包装类 ---> 基本数据类型
    //方法: 调用包装类的xxxValue()
    @Test
    public void test2() {
        Integer in1 = new Integer(12);

        int i1 = in1.intValue();
        System.out.println(i1 + 1);

        Float f1 = new Float("3.14f");

        float fl1 = f1.floatValue();
        System.out.println(fl1 + 1.0);

    }

自动装箱与自动拆箱

和之前代码相比的优势:

/**
     * JDK 5.0新特性:自动装箱与自动拆箱
     */
    @Test
    public void test3() {
        int num1 = 10;
        //基本数据类型-->包装类
        method(num1);
        //自动装箱:
        int num2 = 10;
        Integer in1 = num2;//自动装箱

        boolean b1 = true;
        Boolean b2 = b1;//自动装箱

        //自动拆箱: 包装类-->基本数据类型
        System.out.println(in1.toString());

        int num3 = in1;//自动拆箱
    }
    public void method(Object obj) {
        System.out.println(obj);
    }

基本数据类型和包装类  与 String间转换

基本数据类型和包装类-->String类型

方法一:连接一个 “”

方法二:调用String类的valueOf()

 @Test
    public void test4() {

        int num1 = 10;
        //方式一:连接运算
        String str1 = num1 + "";
        System.out.println(str1);
        boolean b1 = true;
        String str2 = b1 + "";
        System.out.println(str2);
        //方式二 重写的valueOf
        float f1 = 12.3f;
        String str3 = String.valueOf(f1);

    }

String类型 --> 基本数据类型、包装类

调用包装类的parseXXX()方法

可能会报异常 NumberFormatException,需要注意

 @Test
    public void test5() {
        String str1 = "123";
        int in1 = Integer.parseInt(str1);
        System.out.println( in1 + 2); //125
        boolean b1 = Boolean.parseBoolean("true");
        System.out.println(b1);//true
    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值