jdk源码分析之Number抽象类

本文详细介绍了Java中的Number类,包括其在java.lang包中的位置、作为抽象类的特性、实现的接口、构造方法以及Number类的子类必须提供的转换方法等。文章还深入探讨了intValue()、longValue()、floatValue()、doubleValue()、byteValue()和shortValue()等方法的使用及其注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1)关于Number类
位置:java.lang包
类型:抽象类
实现接口:java.io.Serializable
构造方法:系统生成的默认的构造函数。
Number类是 BigDecimal、BigInteger、Byte、Double、Float、Integer、Long 和 Short 类的超类
Number 的子类必须提供将表示的数值转换为 byte、double、float、int、long 和 short 的方法。
2)方法
1)intValue()
抽象方法
以int形式返回指定的数值。
注意:这可能会涉及到舍入或取整
2)longValue()
抽象方法
以long形式返回指定的数值。
注意:这可能会涉及到舍入或取整
3)floatValue()
抽象方法
以float形式返回指定的数值。
注意:这可能会涉及到舍入
4)doubleValue()
抽象方法
以double形式返回指定的数值。
注意:这可能会涉及到舍入
5)byteValue()
普通方法
以byte形式返回指定的数值。
注意:直接将intValue()的返回值强制转换成byte类型,这可能会涉及到舍入或取整
int类型的变量转换成byte的转换方式是:int类型变量的值模byte的取值范围的余数
例如:int num = 258;
byte b = (byte)num
= 258%128=0余2
= 2

int num = 258;
byte b = (byte)num;
System.out.println(b);

2


6)shortValue()
普通方法
以short形式返回指定的数值。
注意:直接将intValue()的返回值强制转换成short类型,直接截取。
  int num1 = 32770;
System.out.println(Integer.toBinaryString(num1));
short s = (short)num1;
/**
* 32770转换成二进制为:00000000_00000000_10000000_00000010
* 强制转换为short类型 将00000000_00000000直接截取剩下10000000_00000010 为负数的补码
* 转换成负数 10000000_00000010减1为 10000000_00000001 取反为11111111_11111110 转换成二进制为-32766
* */
System.out.println(s);


-32766
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值