6.1.1、Numbers 类

这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
Numbers类

当使用数字时,大部分情况下会使用基本类型,比如:

int i = 500;
float gpa = 3.65f;
byte mask = 0xff;

然而,在有些情况下建议使用对象来代替基本类型,Java平台为每个基本类型都提供了与之对应的包装类。类会在对象中“包裹”基本类型。大部分情况下,当需要对象类型时使用了基本类型,编译器会用该基本类型的包装类来完成装箱。同理,当需要基本类型时使用了对象类型,编译器会帮你完成拆箱。想获取更多信息,请参考 装箱和拆箱

所有的数字包装类型都是抽象类 Number 的子类:
在这里插入图片描述


注意: 有4种Number 类的子类不会在这里讨论。BigDecimalBigInteger 是为高精度运算准备的。AtomicIntegerAtomicLong 是为多线程应用准备的。


在这些情况下应该使用对象类型替代基本类型:

  • 方法的参数期望传入对象时(当操作数字集合时经常使用)
  • 使用类中定义的常量,比如:MIN_VALUE 和 MAX_VALUE,提供了该数据类型的最小和最大边界值
  • 使用方法完成数值和基本类型之间转换,比如 和 字符串互转,数值系统之间转换(十进制数、十六进制数、二进制数

下面的表格展示了Number 所有子类实现的实例方法:

方法描述
byte byteValue()
short shortValue()
int intValue()
long longValue()
float floatValue()
double doubleValue()
Number 转换成基本类型
int compareTo(Byte anotherByte)
int compareTo(Double anotherDouble)
int compareTo(Float anotherFloat)
int compareTo(Integer anotherInteger)
int compareTo(Long anotherLong)
int compareTo(Short anotherShort)
对象与参数进行比较
boolean equals(Object obj)决定数字对象与参数是否相等
如果参数非空,与对象类型一致并且值也相等,那么返回 true
Java API文档中描述了对DoubleFloat 对象的一些额外要求

每个 Number 类型包含 数值与字符串互转,数值与其他数值系统互转的有用方法。下表列出了 Integer 类的这些方法。同理Number 类的其他子类也提供了类似方法。

方法描述
static Integer decode(String s)将字符串转换为integer。可接受十进制或十六进制的数字作为输入
static int parseInt(String s)返回integer
static int parseInt(String s, int radix)返回integer,字符串描述可以是二进制、十进制和十六进制等
String toString()返回该 Integer 值的 String 对象
static String toString(int i)返回该integer的 String 对象
static Integer valueOf(int i)返回持有该integer同值的Integer对象
static Integer valueOf(String s)返回持有字符串描述值的Integer对象
static Integer valueOf(String s, int radix)返回持有字符串描述值的Integer对象,通过进制转换。比如 如果 s=“333”,radix=8,该方法返回8进制333等价的十进制数值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值