`
jzinfo
  • 浏览: 116264 次
  • 性别: 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开始引入了自动装箱/拆箱机制,使得二者可以相互转换。...

    Java基础知识点.html

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

    ypjh001#-#17.包装类1

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

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

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

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

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

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

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

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    装箱和拆箱.mp4 │ Java面试题07.==和equals的区别.mp4 │ Java面试题08.String.mp4 │ Java面试题09.讲一下java中的集合.mp4 │ Java面试题10.ArrayList LinkedList.mp4 │ Java面试题11.HashMap和HashTable的区别....

Global site tag (gtag.js) - Google Analytics