`
jzinfo
  • 浏览: 116502 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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这样的引用类型的对象重新简化为值类型的数据。

 

//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为例:

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中对该方法的描述:

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文档

 

 

分享到:
评论

相关推荐

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

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

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

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

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

    主要介绍了Java包装类及自动装箱拆箱,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    Java包装类详解.pptx.pptx

    包装类的定义 包装类是Java提供的一种特殊类,它...包装类提供了自动装箱和拆箱的功能,可以将基本数据类型自动转换为对应的包装类对象,也可以将包装类对象自动转换为基本数据类型。这大大提高了代码的简洁性和效率。

    java自动装箱拆箱深入剖析

    基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装成为装箱,解包装称为拆箱)

    java 包装类

    该文件显示了包装类中的自动装箱和自动拆箱!就是类容比较少

    kentanvictor#STUDY#java1.5新特性之自动装箱与自动拆箱1

    //这里就是自动的装箱,将3转换成Integer类型并放到集合中自动拆箱包装类自动转为基本类型 Integer >> int面试常见题目:自动拆箱与自动装箱的问

    【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识

    string和包装类 final关键字特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO...

    Java经典面试题.pdf

    1.什么是Java的自动装箱和拆箱? 自动装箱是指将基本数据类型转换为对应的包装类对象,以便于在需要使用对象的地方进行操作。例如,将int类型的数据自动转换为Integer对象。 自动拆箱是指将包装类对象转换为对应的...

    Java包装类

    1.概念 Java提供了两个类型系统,基本... 装箱:把基本类型的数据,包装到包装类中(基本类型的数据->包装类)  构造方法:  Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。  Integer(Strin

    Java工程师面试复习指南

    字符串和包装类 关键字最终特性 Java类和包 抽象类和接口 代码块和代码执行顺序 Java自动拆箱装箱里隐藏的秘密 Java中的Class类和Object类 Java异常 解读Java中的回调 反射 泛型 枚举类 Java注解和最佳实践 JavaIO流...

    Java面试题-基础和集合.docx

    其中,讨论了Java为什么不支持多继承、==和equals的区别、方法重载的条件、String为何设计成不可变、包装类的应用场景、Integer的高速缓存机制等多个方面。 通过面试题的逐一解答,读者可以了解到Java语言的一些...

    Java笔记(9)类型转换与包装类

    对Java对象的强制类型转换称为造型==操作符与equals方法==:equals():String对象的创建代码练习题包装类(Wrapper)基本数据类型包装成包装类的实例–装箱获得包装类对象中包装的基本类型变量 —拆箱字符串转换为...

    阿里2017年Java学科面试测试题

    但是为了能够将这些基本数据类型当成对象操作,Java为每一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。...

    实验项目D、Java应用专题编程

    5、掌握Java包装类的基本用法。 6、初步掌握几个常用类和接口的含义和使用。 ★专题:文件IO和数据库编程★ 1、掌握File类的使用。 2、掌握字节流IO的操作。 3、掌握字符流IO的操作。 4、初步掌握随机流操作。 5、...

    Java基础知识点.html

    Date类 自动拆箱和自动装箱 Arrays 类和接口的关系 内部类 成员内部类 局部内部类 匿名内部类 抽象类 接口 多态 封装 类和对象 方法 StringBuilder类 String类 static for循环 final 权限修饰符 跳转控制语句 while...

    Java开发技术大全(500个源代码).

    invokeMethod.java 同一个类中调用方法示例 invokeOther.java 类的外部调用方法示例 invokeStaticMethod.java 调用静态方法示例 localVariable.java 演示局部变量 localVSmember.java 局部变量与成员变量同名...

    ypjh001#-#17.包装类1

    1. 概述 3. 装箱与拆箱 4. 自动装箱与自动拆箱 5. 基本类型与字符串之间的转换

    稳稳当当学java之常用类(13).md

    本人的笔记,关于java基础中常用类的内容 包括 1.作业回顾 2.Object类 2.1 toString方法 2.2 equals方法 2.3 hashCode方法 3.包装类 3.1 使用包装类的原因 ...4.自动装箱和自动拆箱 5.包装类的缓存 6.练习

Global site tag (gtag.js) - Google Analytics