首页 > 编程语言 > 详细

java包装器类型

时间:2019-05-07 19:38:52      阅读:155      评论:0      收藏:0      [点我收藏+]

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

  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);
}

 

java包装器类型

原文:https://www.cnblogs.com/zhangqingquan/p/10827377.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!