小白学JDK源码--Byte类

学习一个类

学习过程中参考此篇文章,写的很好

1、观察它继承的父类,实现了那些接口
2、找到它的成员变量
3、学习构造方法
4、学习方法

一、父类和接口
在这里插入图片描述
从图中可以知道,Byte类继承了Number类,实现了Comparable接口

对于Comparable接口,只有一个抽象方法
在这里插入图片描述
这个接口赋予它和它的子类比较的能力,用于排序,比较大小
对于一个存储自定义类的数组或集合,只有这个类实现了该接口,重写了接口中的compareTo()方法,重写了排序规则
才能使用Arrays类的sort方法进行排序;

二、成员变量
在这里插入图片描述
定义了Byte类型数据的边界值,就是说,Byte类型的值只能在-128~127之间
在这里插入图片描述
TYPE是一个Byte的Class类对象,相当于TYPE=Byte.class;
在这里插入图片描述
这就是Byte类型的基础类型,数据存储的地方(从下面的构造方法可以看出)
在这里插入图片描述
这三个成员变量分别表示Byte数据的位数,字节数和UID(用于序列化和反序列化)

三、构造方法

在这里插入图片描述
Byte的构造方法有两个,可以看出,两个构造方法都会将传入的数据存放到成员变量byte中

四,成员方法

  • 1、toString(byte b)方法
    在这里插入图片描述
    注意:这个toString()方法不是重写Object的toString方法,因为它有参数
    作用:将一个byte类型数据转化为String字符串类型
    实质上是直接调用Integer类的toString方法,
    radix:10:用10进制表示

私有静态内部类
在这里插入图片描述
这是Byte类的一个静态内部类,类里面还有一个静态代码块
静态代码块会在类第一次被加载的时候执行,并且只执行一次
这里的作用就是,创建一个Byte类型的数组,数组的长度是256
里面存储着-128~127的数字(Byte类数据所有可能的取值)
并且数组是静态的并且final修饰,
因为后面的有些成员方法会需要用到Byte对象,所以这样做就避免了重复创建对象和回收对象

  • 2、valueOf(byte b)
    在这里插入图片描述
    作用:将基本类型–>包装类型,直接从上面的数组中得到

  • 3、parseByte(String s,int radix)
    -在这里插入图片描述
    参数:
    String s:要解析的字符串
    int radix:指定字符串表示的进制
    例如:s=“10000”,radix=2,解析出来的值就是16
    作用:
    将字符串按照指定进制解析为byte类型
    实质上调用的是Integer的parseInt方法,解析成int类型
    判断是否超出范围,超出范围就抛异常,否则就返回

  • 4、parseByte(String s)
    在这里插入图片描述
    不指定进制默认十进制解析

  • 5、valueOf(String s,int radix)

  • 在这里插入图片描述
    参数:
    String s:要转换的字符串
    int radix:字符串表示的进制,和解析方法一样
    作用:
    将字符串转换为按照指定进制形式表示的Byte类型,
    先将字符串解析为byte类型,在调用valueOf()方法,从静态代码块初始的数组中找到对应的Byte并返回

  • 6、valueOf(String s)
    默认10进制

  • 7、xxxValue()方法
    重写父类的方法,由于byte数值最小,不用担心出现溢出
    直接用强制类型转换,然后return

  • 8、hashCode()
    在这里插入图片描述
    重写了父类的hashCode方法,对于Byte类型,它的hashCode方法实质上就是返回它的值

  • 9、equals()方法
    在这里插入图片描述
    重写了父类的equals方法

  • 10、compareTo()方法
    在这里插入图片描述
    重写了接口中的compareTo方法,直接返回两个对象的差值
    调用方法的对象-方法的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值