一、概要
Byte是包装类,对象包装了原始类型byte的值,有一个byte字段
提供了一些方法,使byte和String能够相互转化
二、实现接口或继承类
public final class Byte extends Number implements Comparable<Byte>
继承Number抽象类,该类继承了java.io.Serializable类,该类有以下一些方法
//以int形式返回指定数字的值,可能存在截断和舍入问题
public abstract int intValue();…doubleValue实现Comparable接口,进行比较
三、构造函数
//将字符串解析为10进制的数
public Byte(String s) throws NumberFormatException {
this.value = parseByte(s, 10);
}
四、常量或变量
//Byte值
private final byte value;
//用来表示二进制补码形式的{@code byte}值的位数
public static final int SIZE = 8;
//用于表示二进制补码形式的{@code byte}值的字节数
public static final int BYTES = SIZE / Byte.SIZE;
//byte的最小值,以补码 `10000000`在计算机内部保存
public static final byte MIN_VALUE = -128;
//byte的最大值,以补码`01111111`在计算机内部保存
public static final byte MAX_VALUE = 127;
//序列化ID
private static final long serialVersionUID = -7183698231559129828L;
//byte的class实例
public static final Class<Byte> TYPE = (Class<Byte>) Class.getPrimitiveClass("byte");
五、方法
//将byte返回String
public static String toString(byte b) {
return Integer.toString((int)b, 10);
}
//内部类
//将-128至127所有byte缓存
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));
}
}
//返回表示指定的byte值的Byte实例
//如果不必须的话,建议使用构造函数Byte(byte),性能更好,因为所有byte值都被缓存了
public static Byte valueOf(byte b) {
final int offset = 128;
return ByteCache.cache[(int)b + offset];
}
//将字符串解析为带符号的十进制byte
public static byte parseByte(String s) throws NumberFormatException {
return parseByte(s, 10);
}
//将字符串解析为特定进制的byte
public static Byte valueOf(String s, int radix)
throws NumberFormatException {
return valueOf(parseByte(s, radix));
}
//默认十进制
public static Byte valueOf(String s) throws NumberFormatException {
return valueOf(s, 10);
}
//还有各种value,将byte转化成指定类型
public int intValue() {
return (int)value;
}
//返回byte的哈希值,等价于返回将value转化为int的值
@Override
public int hashCode() {
return Byte.hashCode(value);
}
//当且仅当obj是Byte型且值相等的情况下返回为真
public boolean equals(Object obj) {
if (obj instanceof Byte) {
return value == ((Byte)obj).byteValue();
}
return false;
}
//返回当前值减参数anotherByte的结果
public int compareTo(Byte anotherByte) {
return compare(this.value, anotherByte.value);
}