包装类(转)

包装类(Wrapper Class)

  包装类是针对于原生数据类型的包装。

  因为有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的时候,不会生成新的对象,而是从缓存中取出对象。这样可以提高性能。

  使用构造方法的时候肯定会生成新的对象。

转载自http://www.cnblogs.com/mengdd/archive/2013/01/21/2869921.html

时间: 2024-10-11 13:18:48

包装类(转)的相关文章

基本数据类型对象包装类

byte Byte shor Short int Integer long Long float Float double Double char Character 基本数据类型包装类对象的最常见作用 就是用于基本数据类型和字符串类型之间做转换 基本数据类型转成字符串 基本数据类型+"" 基本数据类型.toString(基本数据类型值) 如:Integer.toString(34);//将34整数变成"34" 字符串转成基本数据类型 xxx a = Xxx.par

常用类--包装类

一 包装类                          对应基本数据类型 java.lang.Integer                        int java.lang.Long                           long java.lang.Double                        double java.lang.character                      char java .lang.Boolean        

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.

java中的包装类

每一个包装类都对应一种基本数据类型.包装类有:Integer.character.Byte.Short.Long.Floot.Double.Boolean这八种,分别对应的基本数据类型是:int.char.byte.short.long.floot.double.boolean这八种(后面6种的包装类都是将其所对应的基本数据类型的首字母大写). 包装类的作用是丰富了基本数据的类型只能存放值,不能存放应用的问题:同事还可以提供大量的方法或常量,充当了基本数据类型和引用数据类型的桥梁,可以方便基本数

day17 包装类、日期类

包装类 作用:1.丰富了基本数据类型只能存放值的问题,还提供了大量的方法或常量. 2.包装类充当了基本数据类型和引用数据类型转换的桥梁. 应用层面:包装类.String.基本数据类型的互相转换. 1.基本数据类型转为String: String str = Integer.toString(10): String str = 10 + "": 2.String转换为基本数据类型: int i = Integer.parseInt(str): 3.基本数据类型和包装类互转换: 语法糖--

2016/1/14 数字类处理 包装类

⑩数字处理类 取整:1,四舍五入,格式Math.round(浮点数) 2,取下限值,格式 Math.floor(浮点数)   3,取上限值,格式Math.ceil(浮点数) 生成随机数 1,Math.random()静态方法.介于0和1之间的小数               2,Random类 实例化Random Random x =new Random()                                  Random x=new Random(随机数种子)         

包装类和自动解封装

包装类 8个基本类型的包装类我们知道java是面向对象的语言,其精髓之一是可以使用多态性,提高程序的灵活度.但是java中有8个基本类型:byte,short,int,long,float,double,char,boolean.它们是以值的形式存在于内存中,而不是对象.它们不是Object的子类,不能参与面向对象的开发. 包装类的作用 让基本类型参与面向对象的开发 可以获取其基本类型的取值范围 可以将字符串转换成基本类型数据 基本类型包装类 对于8个基本类型,java提供了他们相应的包装类:基

Java知多少(24)包装类、拆箱和装箱详解

虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性.没有方法可调用. 沿用它们只是为了迎合人类根深蒂固的习惯,并的确能简单.有效地进行常规数据处理. 这种借助于非面向对象技术的做法有时也会带来不便,比如引用类型数据均继承了 Object 类的特性,要转换为 String 类型(经常有这种需要)时只要简单调用 Object 类中定义的toString()即可,而基本数据类型转换为 String 类型则要麻烦得

Java 包装类 自动装箱和拆箱

包装类(Wrapper Class) 包装类是针对于原生数据类型的包装. 因为有8个原生数据类型,所以对应有8个包装类. 所有的包装类(8个)都位于java.lang下. Java中的8个包装类分别是:Byte, Short, Integer, Long, Float, Double, Character, Boolean,它们的使用方式都是一样的,可以实现原生数据类型与包装类型的双向转换. 下面以主要Integer类为例说明. Integer Integer类将int类型的值包装到一个对象中.

Java笔记二十二.深入解析I/O编程之包装类

深入解析I/O编程之包装类 转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 从上节学到的节点流类我们知道,如Java中提供的FileOutputStream和FileInputStream类实现往文件中写入字节或从文件中读取字节数据.在实际应用中,我们需要往文件中写入或读取各种类型的数据,一般的做法是先将其他类型的数据转换成字节数组后写入文件或是将从文件中读取到的字节数组转换成其他类型.然而,上述方法会给我们的程序增加了代码量和带来一些困难和