• 《疯狂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);
            }
            
        }
    }
  • 相关阅读:
    Object C学习笔记19-枚举
    Object C学习笔记18-SEL,@ selector,Class,@class
    Object C学习笔记17-动态判断和选择器
    Object C学习笔记16-委托(delegate)
    CopyOnWriteArrayList源码解析
    企业项目开发--切分配置文件
    常用Java集合类总结
    HashSet源码解析
    网络工具使用情况分析
    邮件营销的准则
  • 原文地址:https://www.cnblogs.com/CocoonFan/p/2945342.html
Copyright © 2020-2023  润新知