- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.5.2.1_基本数据类型的包装类解读
Java 基础篇
JAVA是面向对象的编程语言,包含了8种基本数据类型,这8个基本数据类型不支持面向对象的编程机制,基本数据类型的数据也不具备“对象”的特性:没有属性,方法可以被调用。JAVA之所以提供这8种基本数据类型,主要是为了照顾程序员传统的习惯。
为了解决8个基本数据类型的变量不能当成Object类型变量使用的问题,JAVA提供了包装类(Wrapper?Class)的概念,为了8个基本数据类型分别定义了相应的引用类型,并称之为基本数据类型的包装类。
基本数据类型和包装类的对应
除了int和char两个有点例外之外,8个基本类型对应的包装类都是将其首字母大写即可。
基本数据类型
包装类
byte
Byte
short
Short
int
Integer
long
Long
char
Character
float
Float
double
Double
boolean
Boolean
基本数据类型转包装类
把基本数据类型变量包装成包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个包装类中除了Character之外,还可以通过传入一个字符串参数来构建包装类对象。?
当试图使用一个字符串来创建Byte?,Short?,Integer,Long,Float,和Double等包装类对象时,如果传入的字符串不能成功转换成对应基本类型变量,则会引发java.lang.NumberFormatException异常。
如果试图使用一个字符串来创建Boolean对象时,如果传入的字符串是“true”,或此字符串不同字母的大小写变化形式【不区分大小写】,如True,都将创建true对应的Boolean对象;如果传入其他字符串,则会创建false对应的Boolean对象。
包装类转基本数据类型
通过包装类对象中包装的基本类型变量,可以使用包装类提供的xxxValue()实例的方法,
by.byteValue()
sh.shortValue();
it.intValue();
l.longValue();
ch.charValue();
fl.floatValue();
b1.booleanValue();
基本类型变量和包装类对象之间的转换关系
基本类型变量
包装类对象
通过new WrapperClass(primitive)创建
通过WrapperInstance.xxxValue()方法
自动装箱和自动拆箱
从上图中我们可以看出:JAVA提供的基本类型变量和包装类对象之间转换有点繁琐,但从JDK1.5之后就清除了,JDK1.5提供了自动装箱(Autoboxing)和自动拆箱(AutoUnboxing)功能,
自动装箱:可以把一个基本类型变量直接赋给对应的包装类变量,或者赋给Object变量(Objectj?是所有类的父类,子类对象可直接赋给父类变量)。
自动拆箱:与之相反,直接把包装类对象直接赋给一个对应的基本类型变量。
当JDK提供了自动装箱和自动拆箱后,大大简化了基本类型变量和包装类对象之间的转换过程。值得指出的是,进行自动装箱和自动拆箱时必须注意类型匹配,例如Integer只能自动拆箱成int类型的变量,不要试图拆箱成boolean类型的变量;与之在似的是,Int类型的变量只能自动装箱成Integer对象(即使赋给Object类型的变量,那只是利用了JAVA的向上自动转型特性),不要试图装箱Boolean对象。?
包装类还可实现基本类型变量和字符串之音的转换,除了Character之外的包装类都提供了一个parsexxx(String?s)静态方法,用于将一个特定字符串转换成基本类型变量;除此之外,在String类里也提供了多个重载valueOf()方法,用于将基本类型变量转换成字符串,
如果希望把基本类型变量转换成字符串,还有一种更简单的方法:将基本类型变量和”进行连接运算,系统会自动把基本类型变量转成字符串。
文档评论(0)