`

Java中的包装类 装箱和拆箱

阅读更多
在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,不能作为对象调用其toString()、hashCode()、getClass()、equals()等等方法。

所以在java中,针对8种基本数据类型,提供了针对每个基本数据类型的包装类。如下:


INDEX 基本数据类型 包装类
1 int Integer
2 char Character
3 float Float
4 double Double
5 byte Byte
6 short Short
7 long Long
8 boolean Boolean
所谓装箱,就是把基本类型用它们相对应的引用类型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。

所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。

Java代码 
//JDK1.5 之前使用手动方式进行装箱 和拆箱的 操作 
public class IntegerDemo 

    public static void main (String[] agrs) 
    { 
        int i=10; 
        Integer j=new Integer(i); //手动装箱操作 
                     int i1=j.intValue();      //手动拆箱操作 
        System.out.println(i1*i1);  
    } 
}; //output:100 
 
 
//JDK1.5之后可自动进行的装箱和拆箱的操作,比较方便 
public class IntegerDemo02 

    public static void main (String[] agrs) 
    { 
        int i=10 
        Integer j=i; 
        int k=j; 
        System.out.println(++k); 
    } 
}; //output:11 


包装类的另外一个比较有用的是可以将String 字符串类型转换为相应的基本数据类型。下面以将String转为int为例:
Java代码 
public class IntegerDemo04 

    public static void main (String[] args) 
    { 
        String str="1500"; 
        try 
        { 
            int i=Integer.parseInt(str); 
            System.out.println(++i); 
        } 
        catch (Exception e) 
        { 
            e.printStackTrace();  //打印异常信息 
        } 
         
    } 
};// output: 1501 

如果在上述方法中str="15er00";则在调用parseInt方法时候会产生NumberFormatException异常,见JDK API中对该方法的描述:
Java代码 
public static int parseInt(String s)  throws NumberFormatException 
 
将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。  
 
参数: 
s - 包含要解析的 int 表示形式的 String。  
返回: 
用十进制参数表示的整数值。  
抛出:  
NumberFormatException - 如果字符串不包含可解析的整数。 
 
总结在包装类中将String转换为包装类所对应的基本数据类型的方法如下,所有的方法都将抛出NumberFormatException异常,需要在调用时候使用try ..catch 进行捕获


index 包装类 返回的基本数据类型 方法名
1 Integer int static int Integer.parseInt(Sting s)
2 Character char static char Character.parseChar(String s)
3 Float float static float Float.parseFloat(String s)
4 Dobule double static double Double.parseDouble(String s)
5 Byte byte static byte Byte.parseByte(String s)
6 Short short static short Short.parseShort(String s)
7 Long long static long Long.parseLong(String s)
8 Boolean boolean static boolean Boolean.parseBoolean(String s)

类似的一个方法为 parseXXX(String s,int radix),对于Integer包装类,这个radix表示进制. parseInt(String s)默认为十进制。 其他包装类的radix参数意义,请参见API文档

http://jzinfo.iteye.com/blog/450590(写的很好,所以没有收藏)
分享到:
评论

相关推荐

    Java中的自动装箱与拆箱Java开发Java经验技巧共6

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的特性,它们简化了基本类型(如int、double等)与对应的包装类(如Integer、Double等)之间的转换过程。这些特性是在Java 5引入的,极大...

    Java中的自动装箱和拆箱是什么?它们有什么作用?(java面试题附答案).txt

    在Java中,自动装箱(Autoboxing)和拆箱(Unboxing)是Java编译器提供的一种特性,用于在基本数据类型和对应的包装类之间进行自动转换。这种特性简化了编程过程中的类型转换操作,使得代码更为简洁易读。 **自动...

    Java中的自动装箱与拆箱_.docx

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是从Java 1.5版本开始引入的一项特性,其目的是简化原始类型(Primitive Types)与它们对应的包装类(Wrapper Classes)之间的转换过程。...

    Java中的自动装箱与拆箱:深入理解基本数据类型与对象的转换

    对于基本数据类型与包装类之间的转换,Java提供了一个非常便利的功能——自动装箱和自动拆箱。这些功能极大地简化了编程流程,使代码更加简洁易读。 #### 基本数据类型与包装类 在Java中,**基本数据类型**是指...

    JAVA装箱拆箱(很详细、易于理解)

    从Java 5开始,引入了自动装箱和拆箱特性,使得基础数据类型和其包装器类之间的转换更加方便。例如: ```java Integer y = 567; // 自动装箱 y++; // 自动拆箱,自增,再自动装箱 System.out.println("y = " + y); ...

    Java中自动装箱、拆箱引起的耗时详解

    Java中自动装箱和拆箱是Java语言中一个重要的特性,它可以将基本数据类型和它们的包装类之间进行转换,这个过程是透明的,程序员不需要手动进行转换。但是,这个过程会引起一些耗时问题,本文将详细介绍Java中自动...

    Java软件开发实战 Java基础与案例开发详解 8-3 装箱和拆箱 共4页.pdf

    在Java中,自动装箱和拆箱主要依赖于包装类的几个特殊方法。例如,对于`Integer`类,它提供了`valueOf()`和`intValue()`方法来支持自动装箱和拆箱。 - **装箱**:通过调用`Integer.valueOf(int)`方法实现。 - **...

    Java语言 包装类讲解案例代码 ( 设计目的(作用)和用途、自动装箱与拆箱、常用方法、 null和默认值)

    学习和理解Java包装类的基本概念和语法; 实际项目中需要使用包装类来增加类型安全性和重用性的开发任务。 目标: 本代码资源的目标是帮助读者理解包装类的用法和优势,并通过实际的示例代码加深对包装类的掌握。...

    Java包装类、拆箱和装箱详解.docx

    Java 包装类、拆箱和装箱详解 Java 语言作为一门典型的面向对象编程语言,然而其八种基本数据类型并不支持面向对象编程。这些基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。为了解决这个问题...

    详解Java包装类及自动装箱拆箱

    "详解Java包装类及自动装箱拆箱" Java 包装类是 Java 语言中的一种基本类型的封装体,它将基本类型的值“包装”到对象中,使基本类型的值能够包含在集合中,或者作为方法的返回值。Java 包装类有两个主要的目的:将...

    详解Java 自动装箱与拆箱的实现原理

    如果i在-128和127之间,则从IntegerCache中获取包装类的实例,否则new一个新实例。这是使用了亨元模式,来减少对象的创建。 在Java中,自动装箱和拆箱的实现原理如下: * 自动装箱:编译器调用valueOf()方法将原始...

    Java 装箱与拆箱详解及实例代码

    Java中的装箱与拆箱是面向对象编程中一个重要的概念,尤其在处理基本类型与对象类型之间的转换时显得尤为重要。本文将深入讲解Java装箱与拆箱的基本概念,并通过实例代码进行演示。 装箱(Boxing)是Java自动将基本...

    java自动装箱拆箱深入剖析

    Java中的自动装箱和拆箱是自J2SE 5.0版本引入的特性,它极大地简化了基本数据类型与其对应的包装类之间的转换过程。基本数据类型包括int、double、boolean等,而包装类如Integer、Double和Boolean分别对应这些基本...

    Java中的装箱和拆箱深入理解

    Java中的装箱和拆箱是面向对象编程中的一个重要概念,主要涉及到基本数据类型与它们对应的包装器类之间的转换。在Java SE 5及以后的版本中,为了方便开发者使用,引入了自动装箱和拆箱的功能。 一、什么是装箱和...

    《深入理解java虚拟机》自动装箱拆箱实例.doc

    在Java中,自动装箱是指将基本数据类型自动转换为对应的包装类对象的过程,而自动拆箱则是指将包装类对象自动转换为基本数据类型的逆过程。这一特性自Java 5起引入,极大地简化了开发者的编程工作。 #### 基本数据...

    java包装类练习.doc

    Java 包装类是 Java 语言中的基本类型的对象表示形式,用于提供包装基本类型的对象。Java 包装类包括 Boolean、Byte、Character、Short、Integer、Long、Float 和 Double 八种。 1. Long 包装类型常量 cache 机制 ...

    浅谈Java自动装箱与拆箱及其陷阱

    Java中的自动装箱和拆箱是自JDK 1.5版本引入的一种语言特性,它极大地简化了基础数据类型(如int)与它们对应的包装类(如Integer)之间的转换过程。这一特性使得开发者无需手动创建包装类实例或使用显式类型转换,...

    Tedu正则表达式与Object与自动装箱与拆箱

    在 Java 5 中引入了自动装箱与拆箱的功能,使得开发者在使用基本类型和它们对应的包装类之间更加灵活。 **示例**: ```java // 自动装箱 int num = 10; Integer numObj = num; // numObj 是 Integer 对象 // 自动...

    java陷阱之自动装箱共2页.pdf.zip

    Java语言在设计时引入了自动装箱和拆箱机制,以方便开发者在基本类型与它们对应的包装类之间进行转换。这个特性在提高编程效率的同时,也可能带来一些隐藏的陷阱,尤其是在性能敏感的代码中。本篇文章将深入探讨Java...

    Java学习资料-包装类

    以下是关于Java包装类的详细知识: 1. **包装类的定义与作用** - Java的8个基本数据类型包括byte、short、int、long、char、float、double和boolean。每个都有其对应的包装类,分别是Byte、Short、Integer、Long、...

Global site tag (gtag.js) - Google Analytics