一文讲解Java基本数据类型的包装类

Java语言是一种面向对象的语言,但Java中的基本数据类型却是非面向对象的,这在实际使用中存在着许多不便,为了解决这种不足,在设计类时为每一种基本数据类型设计了相应的类,这样八种与基本数据类型相对应的类统称为包装类(WrapperClass),有些地方还会翻译成外覆类或数据类型。

包装类均位于java.lang包,包装类和基本数据类型的对应关系如下表所示:

包装类的用途

对于包装类说,这些类的用途主要包含两种:

a、作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。

b、包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法(这些操作方法的作用是在基本类型数据、包装类对象、字符串之间提供转化!)。

所有的包装类(WrapperClass)都有共同的方法。

int和Integer类之间的转换

在实际转换时,使用Integer类的构造方法和Integer类内部的intValue方法实现这些类型之间的相互转换,实现的代码如下:

Integer类内部的常用方法

在Integer类内部包含了一些和int操作有关的方法,下面介绍一些比较常用的方法:

1.parseInt方法

publicstaticintparseInt(Strings)

该方法的作用是将数字字符串转换为int数值。在以后的界面编程中,将字符串转换为对应的int数字是一种比较常见的操作。

使用示例如下:

则int变量n的值是123,该方法实际上实现了字符串和int之间的转换,如果字符串都包含的不是都是数字字符,则程序执行将出现异常。(说明:异常的概念将在后期进行讲述)

另外一个parseInt方法:

publicstaticintparseInt(Strings,intradix)

则实现将字符串按照参数radix指定的进制转换为int。

使用示例如下:

这样可以实现更灵活的转换。

1.toString方法

publicstaticStringtoString(inti)该方法的作用是将int类型转换为对应的String类型。使用示例代码如下:

则字符串s的值是”1000”。

自动拆箱和装箱

自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。

自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。

自动装箱与拆箱的功能事实上是编译器来帮您的忙,编译器在编译时期依您所编写的语法,决定是否进行装箱或拆箱动作。

例如:

Integeri=100;

相当于编译器自动为您作以下的语法编译:

Integeri=newInteger(100);

所以自动装箱与拆箱的功能是所谓的“编译器蜜糖”(CompilerSugar),虽然使用这个功能很方便,但在程序运行阶段您得了解Java的语义。

例如下面的程序是可以通过编译的:

Integeri=null;

intj=i;

这样的语法在编译时期是合法的,但是在运行时期会有错误。

因为这种写法相当于:

Integeri=null;

intj=i.intValue();

null表示i没有参考至任何的对象实体,它可以合法地指定给对象参考名称。

由于实际上i并没有参考至任何的对象,所以也就不可能操作intValue()方法,这样上面的写法在运行时会出现NullPointerException错误。

(0)

相关推荐

  • java类名尖括号

    < T>是通用的,通常可以读作"T型".它取决于<>左侧的类型.它实际上意味着什么. 我不知道Pool或PoolFactory是什么,但你也提到ArrayL ...

  • 常用类

    常用类 包装类 在类中查看属性方法的快捷键:Ctrl+F12 java.lang包会默认导入每个Java文件,所以我们不需要导入这个包,直接用包中的类就好了 byte Byte short Short ...

  • 一文讲解Java修饰符判断

    Java反射包里有一个类叫Modifier.里面有许多判断是否public,private等 比如,判断修饰符是否是public public static boolean isPublic(int ...

  • 好好的中药为什么要炮制?净、切、蒸、煮,一文讲解基础炮制方法

    "炮制"是中药加工中非常重要的一环,用对的炮制方法,可以减少某些中药的毒性,也可以改变某些中药的性质,起到更好的治疗疾病的效果. 但是中药炮制技术的传承却不容乐观. 一.为什么中药 ...

  • Java基本数据类型

    变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不同类型的变量,可以在内存 ...

  • 一文讲解RC电路耦合、相移、滤波、微分、积分...

    所谓RC电路,就是电阻R和电容C组成的一种分压电路.如下图1所示:输入电压加于RC串联电路两端,输出电压取自于电阻R或电容 C.由于电容的特殊性质,对下图 (a)和 (b)不同的输出电压取法,呈现出不 ...

  • 一文讲解关于CSS导航栏

    IT行业近十年来发展迅猛,衍生出许多新的职业,如UI设计师.开发工程师.软件测试工程师等,在众多新兴职业中,Web前端工程师就是其中之一.在IT行业,Web前端真正得到重视大概也要六七年.伴随着因特网 ...

  • 一文通读Java的基础语法

    Java基础语法,越来越多的人在学习Java的时候需要掌握,但是很多人又找不到一个完整的语法教程,今天小编历尽千辛万苦,终于整理了一份完整的Java基础语法的汇总,希望对您的学习有所帮助. 下面开始今 ...

  • 一文讲解灰光模块和彩光模块

    内容导读:25G灰光和彩光模块在5G前传解决方案中大放异彩.在DRAN场景中,采用25G 300m灰光模块.在CRAN场景中,光纤资源不足的情况下,使用10km的双向灰光(BiDi)模块.如有必要,可 ...

  • 熟地黄如何大补肝肾?这篇文讲解的非常细致

    地黄入药极早,<本经>记载:"久服能轻身不老".其时尚无生熟之分. 地黄炮制之法,始于汉末,至唐宋已很完备,并且在补肾方中以熟地黄代替过去的干地黄. 金元时期方书则明确 ...

  • 一文讲解抗骨质疏松药物疗程

    小谢说:骨质疏松症(osteoporosis,OP)是最常见的骨骼疾病,是一种以骨量低,骨组织微结构损坏,导致骨脆性增加,易发生骨折为特征的全身性骨病.OP可发生于任何年龄,但多见于绝经后女性和老年男 ...