文章目录
概述
Byte
类将基本类型 byte
的值包装在一个对象中。一个 Byte
类型的对象只包含一个类型为 byte
的字段。
此外,该类还为 byte
和 String
的相互转换提供了几种方法,并提供了处理 byte
时非常有用的其他一些常量和方法。
类的定义
public final class Byte extends Number implements Comparable<Byte>
Byte 类继承了抽象父类 Number,并实现了 Comparable 接口的 compareTo 方法用于对象之间的比较。
静态内部类 ByteCache
private static class ByteCache {
private ByteCache(){
}
static final Byte cache[] = new Byte[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Byte((byte)(i - 128));
}
}
私有的静态内部类 ByteCache,表示 Byte 缓存。其中 cache 变量在静态代码块中初始化了 -128 ~ 127 共256 个 Byte 对象。而 byte 的取值就是 -128~127。也就是说 Byte 对所有值都进行了缓存。
在其他数值类型的包装类中也有相应的缓存。取值时,先从cache中获取,如果缓存命中,则直接返回预先创建的对象;否则通过 new 创建对象。这种共享轻量级元素的方式叫做享元模式。
成员变量
private final byte value;
用于保存 Byte 对象的值,被 final 修饰表示其初始化完成后就不能再被修改。
类变量
// byte的边界值
public static final byte MIN_VALUE = -128;
public static final byte MAX_VALUE = 127;
// 用于二进制补码形式表示 byte值的比特数。
public static final int SIZE = 8;
// 用于二进制补码形式表示 byte值的字节数。
public static final int BYTES = SIZE /