zoukankan      html  css  js  c++  java
  • java包装器类型

    一、为什么要使用包装器类型

      java是面向对象的语言,但基本类型并不是面向对象的,从而出现了包装器类型,并且包装器添加了更多的属性和方法。如我们在使用集合类型Collection的时候就一定要使用包装类型而非基本类型,它相当于将基本类型"包装起来",使它具有了对象的性质,丰富了基本类型的操作。

      java 的两大数据类型

      ● 基本类型(或者叫做内置类型)
      ● 引用数据类型

      基本类型:不存在"引用"的概念,基本类型都是直接存储在内存的内存栈上面,数据本身的值就存储在栈空间里面

      而Java语言里面只有这八种数据类型是这种存储模型;
      引用数据类型:“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的。

    二、什么装箱和拆箱

      装箱:自动将基本数据类型转换为包装器类型。

      拆箱:自动将包装器类型转换为基本数据类型。

     三、装箱和拆箱是如何实现的?

      装箱过程是通过调用包装器的valueOf方法实现的,而拆箱过程是通过调用包装器的 xxxValue方法实现的。(xxx代表对应的基本数据类型)。

      示例1:

      
    Double i1 = 100.0;
    Double i2 = 100.0;
    Double i3 = 200.0;
    Double i4 = 200.0;
    
    System.out.println(i1==i2);
    System.out.println(i3==i4);

      输出结果:

        false
    
        false

      为什么都返回false呢,我们看下Double.valueOf()方法,就知晓了:

    private final double value;
    
    public Double(double value) {
       this.value = value;
    }
    
    public static Double valueOf(double d) {
       return new Double(d);
    }

    示例2:

    Boolean i1 = false;
    Boolean i2 = false;
    Boolean i3 = true;
    Boolean i4 = true;
    
    System.out.println(i1==i2);
    System.out.println(i3==i4);

    输出结果

        true
    
        true

    为什么都返回true呢,我们看下Boolean.valueOf()方法,就知晓了:

    public static final Boolean TRUE = new Boolean(true);
    public static final Boolean FALSE = new Boolean(false);
    
    public static Boolean valueOf(boolean b) {
       return (b ? TRUE : FALSE);
    }
  • 相关阅读:
    apache http 403 Forbidden error
    Python dictionary
    Python The standard programe tructure
    SVN server setup 2
    SVN Server setup 3
    Cent OS下中文乱码的解决方法
    Start to enjoin python
    Linux Client RapidSVN
    使用 F12 开发人员工具调试 HTML 和 CSS(IE浏览器)
    十条不错的编程观点
  • 原文地址:https://www.cnblogs.com/zhangqingquan/p/10827377.html
Copyright © 2011-2022 走看看