java.lang.Byte源码解析(JDK1.8)

一、概要

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);
    }
    
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值