zoukankan      html  css  js  c++  java
  • 《疯狂Java讲义精粹》读书笔记4 基本包装类

    ------------《疯狂Java讲义精粹》读书笔记5--------------

    Java 是面向对象的语言,它既保留了8中基本数据类型,也提供了8中相对应的包装类(Wrapper Class):

     
    基本数据类型 byte        short      int  long       char float        double    boolean
    对应的包装类 Byte Short Integer Long Character Float Double Boolean

     8个包装类除了Character之外可以传入相应的值来初始化,也可以传入字符串初始化。

    包装类对象和基本类型变量的转化关系如下:

    下面用代码说明:

    public class TestWrapper {
        public static void main(String[] args) {
            
            /**
             * 8个包装类除了Character之外可以传入相应的值来初始化,
             * 也可以传入字符创初始化。
             */
            double d = 0.5;
            String str = "123.4";
            Double doubleObj1 = new Double(66.6);//直接构建
            Double doubleObj2 = new Double(d);//传入对应类型的变量
            Double doubleObj3 = new Double("98.9");//传入正确的字符串
            Double doubleObj4 = new Double(str);//传入相应的字符串变量
            
            
            System.out.println(doubleObj1);
            System.out.println(doubleObj2);
            System.out.println(doubleObj3);
            System.out.println(doubleObj4);
            
            /**
             * 另外创建Boolean类时true 和 false的大小写不做区分
             */
            Boolean blObj = new Boolean("FALsE");
            System.out.println(blObj);
            
            /**
             * 如果希望获得包装类对象中包装的基本类型变量,可以使用包装类提供的
             * xxxValue()实例方法。
             */
            //取出doubleObj1中的基本类型变量
            System.out.println("\n--------------------");
            double d1 = doubleObj1.doubleValue();
            System.out.println(d1);
        }
    }

    输出结果为:

    66.6
    0.5
    98.9
    123.4
    false
    
    
    --------------------
    66.6

      很明显这种转换的方式太复杂了,Java1.5之后提供了自动装箱(Autoboxing)自动拆箱(AutoUnboxing)功能,自动装箱可以把一个基本类型的变量直接赋给对应的包装类变量,或者赋给Object变量;自动拆箱可以把包装类型的对象赋给一个对应类型的基本变量。

      下面是一个例子:

    /**
     * 自动装箱、拆箱
     * @author <<疯狂Java讲义精粹>>
     *
     */
    public class TestAutoBoxingUnboxing {
        public static void main(String[] args) {
            //直接把一个基本类型的变量赋给integer对象
            Integer inObj = 5;
            
            //直接把一个boolean类型的变量赋给一个Object类型变量
            Object boolObj = true;
            
            //直接把一个Integer对象赋给int类型变量
            int in = inObj;
            
            if(boolObj instanceof Boolean){
                //先把Object对象强制转换成Boolean类型,再赋值给boolean变量
                boolean b = (Boolean)boolObj;
                System.out.println(b);
            }
            
        }
    }
  • 相关阅读:
    vue证明题二,让vue跑起来
    vue证明题一,vue全家桶的构成
    Vue证明题
    layDay日期格式不合法报错解决
    【ASP.NET Core】运行原理(3):认证
    【ASP.NET Core】运行原理(2):启动WebHost
    【ASP.NET Core】运行原理(1):创建WebHost
    [Open Source] .NET 基于StackExchange.Redis的扩展
    [高并发]EntityFramework之高性能扩展
    [Tool] Git 使用 与 Git Flow
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2945342.html
Copyright © 2011-2022 走看看