JDK源码阅读-Number类

247 阅读1分钟

一、概要

通常我们使用基本数据类型(primitive type)来表达数字,如int、long等。但JAVA集合在声明时只能存放引用类型的数据,而不能声明为基本数据类型。int、long等的引用类型即为其包装类型,如Integer、Long。如下图,这些包装类型都继承于Number,后者是一个抽象类.

Number类图

二、构造方法

Number类无显式构造方法,默认为Number()

三、字段

Number类只有一个私有字段,即private static final long serialVersionUID = -8742448824652078965L;

四、方法

Number类包含4个抽象方法和2个具体方法。从下图可知,Number的所有子类必须实现xxxValue,即子类间需要实现类型的互相转换。2个具体方法shortValue(),byteValue()直接调用了intValue(),然后强转,因此需要注意的是转换过程中各个类型所能表示的精度和范围。。

Number类方法

shortValue()

public short shortValue(){
  return (short) intValue();  
}

byteValue()

public byte byteValue(){
    return (byte) byteValue();
}