大连Java培训
达内大连中心

0411-66863971

热门课程

大连java培训——包装类(Wrapper Class)

  • 时间:2016-05-11
  • 发布:大连java培训
  • 来源:达内新闻

大连java培训今天所讲述的包装类是针对于原生数据类型的包装。

因为有8个原生数据类型,所以对应有8个包装类。

所有的包装类(8个)都位于java.lang下。

Java中的8个包装类分别是:Byte, Short, Integer, Long, Float, Double, Character, Boolean,它们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换。

下面以主要Integer类为例说明。

Integer

Integer类将int类型的值包装到一个对象中。

Integer通过下面这个构造方法构造相应的整型数的对象:

public Integer(int value)

public int intValue()方法则返回这个包装类所包装的整型值。

自动装箱/拆箱(Autoboxing/unboxing

JDK5.0的一个新特性是自动装箱和自动拆箱。

自动装箱/拆箱大大方便了基本类型数据和它们包装类的使用。

自动装箱:基本类型自动转为包装类(int >> Integer

自动拆箱:包装类自动转为基本类型(Integer >> int

比如下面的例子:

import java.util.ArrayList;

import java.util.Collection;

public class BoxTest

{

    public static void main(String[] args)

    {

        Collection<Integer> c = new ArrayList<Integer>();

        c.add(3);//int类型的3转换为Integer类型并放到集合当中       

    }

}

缓存

下面这个程序很奇怪:

public class BoxTest2

{

    public static void main(String[] args)

    {

        Integer i1 = 200;

        Integer i2 = 200;

        if (i1 == i2)

        {

            System.out.println("i1 == i2");

        }

        else

        {

            System.out.println("i1 != i2");

        }

    }

}

当两个数都是100的时候==判断相等,当两个数都是200的时候判断不相等。

查看内部实现代码可知,Integer类有一个缓存,它会缓存-128~127之间的整数。

当调用valueOf的时候,不会生成新的对象,而是从缓存中取出对象。这样可以提高性能。

使用构造方法的时候肯定会生成新的对象。
上一篇:在工作中加入一点目的性就可以让工作更充实?
下一篇:实现泛型接口
选择城市和中心
贵州省

广西省

海南省