一、什么是Java包装类

  所谓Java包装类,就是将Java中的8种基本数据类型分别包装成为类的形式。包装类与基本数据类型的对应关系如下表所示。

基本数据类型

包装类

byte

Byte

short

Short

int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

  其中,Byte、Short、Integer、Long、Float、Double是Number的子类,Character和Boolean是Object的子类。

二、为什么会有Java包装类

  Java是一门面向对象的编程语言,提倡“一切皆对象”,而Java中的基本数据类型却不是对象,这就导致当我们要对基本数据类型进行操作的时候会存在诸多不便,比如说,我们要将整型数据转换为字符串,或者将字符串转换为整型、浮点型数据,或者获取某个整数的二进制、八进制、十六进制等等,都需要我们站在对象的角度进行操作,因此将基本数据类型包装成类,以便把基本数据类型当做对象来进行处理。

三、装箱与拆箱——实现基本数据类型与包装类之间的相互转换

  基本数据类型和包装类之间的转换是通过装箱与拆箱来实现的。包装类提供了装箱和拆箱的方法,例如:

  通过包装类的构造方法,我们可以实现装箱

Integer a = new Integer(6);//装箱

  通过包装类的拆箱方法,我们可以实现拆箱 

Float a = new Float(66.6f);//装箱
float b = a.floatValue();//拆箱

  在JDK1.5之前,装箱与拆箱需要通过以上方式手动实现,在JDK1.5之后,Java提供了自动装箱和拆箱机制,例如:

Integer i = 60; //自动装箱
Float f = 66.6f;//自动装箱
int a = i;//自动拆箱
Float b = f;//自动拆箱

四、包装类的应用

  在实际应用中,通过包装类,我们可以将字符串变为基本数据类型,例如:

int i = Integer.parseInt(“123”);//将”123”装换为int类型的数据
float f = Float.parseFloat(“456”);//将”456”转换为float类型的数据

  也可以将基本数据类型变为字符串,例如:

String s = Integer.toString(123);//将123装换为字符串

  还可以进行二进制、八进制、十进制、十六进制之间的转换,例如:

int m = 10;
String binaryString = Integer.toBinaryString(m);//获取m的二进制形式
String hexString = Integer.toHexString(m);//获取m的十六进制形式
String octalString = Integer.toOctalString(m)//获取m的八进制形式

  除此之外,包装类提供的API还可以完成很多操作。

五、总结

  Java的包装类是站在面向对象的角度上对基本数据类型的封装,是为了在程序中用面向对象的思想去操作基本数据类型。

浅谈Java的包装类的更多相关文章

  1. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  2. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  3. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  4. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  5. 浅谈JAVA集合框架

    浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...

  6. 浅谈java性能分析

    浅谈java性能分析,效能分析 在老师强烈的要求下做了效能分析,对上次写过的词频统计的程序进行分析以及改进. 对于效能分析:我个人很浅显的认为就是程序的运行效率,代码的执行效率等等. java做性能测 ...

  7. 浅谈Java中的深拷贝和浅拷贝(转载)

    浅谈Java中的深拷贝和浅拷贝(转载) 原文链接: http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量.很简单: ...

  8. !! 浅谈Java学习方法和后期面试技巧

    浅谈Java学习方法和后期面试技巧 昨天查看3303回复33 部落用户大酋长 下面简单列举一下大家学习java的一个系统知识点的一些介绍 一.java基础部分:java基础的时候,有些知识点是非常重要 ...

  9. 浅谈Java中的深拷贝和浅拷贝

    转载: 浅谈Java中的深拷贝和浅拷贝 假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(bool ...

随机推荐

  1. 怎么利用WinPE恢复系统注册表?

    我们的电脑总是会遇到各种各样的问题,最好用的方式就是电脑重装,重装系统的方式有很多,光盘安装.硬盘安装.U盘安装等.但是碰到电脑系统瘫痪无法启动,甚至连安全模式也进不了的时候,你的光盘.硬盘就没有用处 ...

  2. svn 同步脚本

    REPOS="$1"REV="$2"export LANG=en_US.UTF-8/usr/bin/svn update /home/wwwroot/yswif ...

  3. C#数字千分位问题

    1.C#中用最简单的方法把数字(不含小数)转换为千分位格式:     如1234567变成1,234,567 方法:1234567.ToString("###,###")   或  ...

  4. C++ 类的动态组件化技术

    序言: N年前,我们曾在软件开发上出现了这样的困惑,用VC开发COM组件过于复杂,用VB开发COM组件发现效率低,而且不能实现面向对象的很多特性,例如,继承,多态等.更况且如何快速封装利用历史遗留的大 ...

  5. ADF_General JSF系列2_创建JSF类型的页面向导

    2015-02-17 Created By BaoXinjian

  6. catalan---卡特兰数(小结)

    (关于卡特兰数的详细介绍)http://baike.baidu.com/view/2499752.htm 下面有练习的题目: 经过测试,_int64/long long 最大只能表示到33位,超过这个 ...

  7. ICANN认证企业列表

    查询地址: http://www.internic.net/alpha.html

  8. Java中的注解是如何工作的?--annotation学习一

    自Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分.开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解.这篇文章中,我将向大家讲述 ...

  9. java多线程之生存者与消费者(Java编程思想)

    1.通过wait() 与 Notify实现 package Produce; import java.util.concurrent.ExecutorService; import java.util ...

  10. Python进阶08 异常处理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 本文特别感谢kylinfish的纠正,相关讨论见留言区. 异常处理 在项目开发中, ...