我是靠谱客的博主 正直鸡翅,最近开发中收集的这篇文章主要介绍Java常用API—包装类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、引言

8种基本数据类型并不是面向对象的,因为他们不是属于类,所以只能对他们做一些简单的操作,如果面对复杂的操作,比如用户都是以字符串形式输入的,如果将年龄转成int类型、考试成绩转成double类型,实现字符串与基本数据类型之间的转换会很不方便。为了解决这个问题,java设计出了基本数据类型对象包装类:将基本数据类型封装成对象。

二、8种基本数据类型对应的包装类

字节型

短整型

整型

长整型

字符型

布尔型

单精度浮点型

双精度浮点型

byte

short

int

long

char

boolean

float

double

Byte

Short

Integer

Long

Character

Boolean

Float

Double

三、java.lang.Number——>java.lang.Object

抽象类Number是BigDecimal、BigInterger、Byte、Double、Float、Integer、Long、Short类的超类。

Number的子类必须提供将表述的数值转换为byte、double、float、int、long、short的方法。

包含以下方法:

byte byteValue()

以byte形式返回指定的数值

short shortValue()

以short形式返回指定的数值

abstract int intValue()

以int形式返回指定的数值

abstract long longValue()

以long形式返回指定的数值

abstract float floatValue()

以float形式返回指定的数值

abstract double doubleValue()

以double形式返回指定的数值


四、java.lang.Boolean——>java.lang.Object

Boolean类将基本类型为boolean的值包装在一个对象中。一个Boolean类型的对象只包含一个类型为boolean的字段。

五、将字符串转成基本类型

static byte parseByte(String s)

将string参数解析为有符号的十进制byte

static short parseShort(String s)

将String参数解析为有符号的十进制short

static int parseInt(String s)

将String参数解析为有符号的十进制int

static long parseLong(String s)

将String参数解析为有符号的十进制

static float parseFloat(String s)

将String参数解析为float类型

static double parseDouble(String s)

将String参数解析为double类型

static Boolean parseBoolean(String s)

将String参数解析为boolean值

如果字符串无法转成基本类型,将会发生数字转换问题:NumberFormatException。

六、包装类,封装基本数据类型,提供大量方法,以Integer类为例

1.    将数字类型的字符串转成int型数字:

Demo:

结果:

需要注意的是:字符串必须是数字格式的,如下Demo,数字110前加了个空格:

结果:

2.    将基本类型int变成字符串

方法一:后面加个“”空字符串


方法二:String的valueOf()方法

方法三:使用int的包装类Integer,在Integer里面用他的toString方法

# 注意:

以上三种方法有效率之间的差异,下面通过一个Demo验证一下:

结果:

由上可以看出,方法一耗时较长,虽然写起来比较简单,但是不建议使用这种降低性能的方法。

方法一耗时较长是因为本质上java会调用StringBuilder或StringBuffer进行拼接实现String化。类似于:

而方法二的执行过程是:

String.valueOf(a)->Integer.toString(a)->IntegralToString.intToString(a)->convertInt(null,a)

方法三的执行过程是:

Integer.toString(a)->IntegralToString.intToString(a)->convertInt(null,a) 

综上,推荐使用【Integer.toString(a);】这种方式将基本类型int变成字符串。

# 拓展

重载parseInt()方法:parseInt(String str, int i)。

结果:

以上方法表示:将2进制的字符串形式的“110”转成10进制的int类型。

还要注意一点:前面的String要与后面的进制匹配,要不也会报NumberFormatException异常。比如parseInt(222, 2),就不合适,因为222不是二进制的。

i取值:0-9A-Z 36进制

 

重载Integer.toString(int i, int j)方法:

结果:

 1100

以上方法表示将int类型的12以2进制转换成String类型的“1100”。

3.    Integer类构造器

①   Integer(intvalue)

②   Integer(Strings):将数字格式的字符串传递到Integer类的构造器中,转成Integer类型。

注:Integer类方法intValue(),将Integer(String s)包装后的对象转成基本类型int。引用类型不能进行基本类型运算。

Demo:

 

4.    Integer类的两个静态成员变量和三个静态方法

①   两个静态成员变量

 MAX_VALUE    表示int类型能够表示的最大值

 MIN_VALUE     表示int类型能够表示的最小值

 调用方法:Integer.MAX_VALUE

 同理,可以改成Byte、Short、Long、Float、Double。如果使用Character,需要强转一下:

 (int)Character.MAX_VALUE,结果为65535

②   三个静态方法

 十进制转二进制      String toBinaryString(inti)

 十进制转八进制      String toOctalString(int i)

 十进制转十六进制  String toHexString(int i)

 调用方法:Integer.toBinaryString(100);

七、自动装箱和自动拆箱

①    自动装箱:基本类型直接变成对象;

 自动拆箱:对象直接变成基本类型。

②   JDK1.5之后的特性,可以直接:

 而不用非要:

 并且可以直接将引用类型整数与基本类型整数一起运算:

 而不用:

③   好处:基本数据和引用类型可以直接运算

最后

以上就是正直鸡翅为你收集整理的Java常用API—包装类的全部内容,希望文章能够帮你解决Java常用API—包装类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部