7.Byte类源码解析
1.
前面两个,一个最大值,一个最小值,不多说,为什么是-128到127 应该不需要我解释了吧,第三个方法,是不是和Boolean中的类似,博主思前想后,想到了包装类型,这玩意儿应该就是为了这个东西准备的。
2.
byte实质是带符号的单字节整数,最高位是符号位,所以看到为什么toString方法后面转成了int类型,Integer中的toString方法
3.
内部私有静态类,里面它定义一个静态常量Byte数组,并初始化 大小256,然后为这个数组每个元素赋了值,博主思考了很久,觉得这货应该是一个缓存值,基本数据类型都有。
4.
这里可以看到两个构造函数,由于调用了parseByte方法,我就一起讲了,并且他还重载, 我就一起拿过来了,没有什么花头,String 转成Byte 底层实际上也就是先转成int 再转成Byte 。
5.
这三个valueOf 放一起讲,归根结底就是调的第一个方法,那么第一个方法到底做了什么事情?实际上就把b的值扔进了cache中,如果不需要新的Byte实例,则该方法通常优先于构造函数,因为所有字节值都被缓存,因此该方法可能会产生显着更好的空间和时间性能。
6.
将字符串解码为Byte类型,调用了Integer底层的decode方法。
7.
这里几个都是获取Byte的值,只是返回的类型都做了转化。
8.
不多说了
9.
byte的hashCode似乎没有什么特别的操作,直接就返回了byte转化成int的值。
10.
比较,直接比较value。
11.
比较,第一个方法,直接调的第二个方法,返回的是两个值的差。谁大谁小看结果正负就知道。
12.
第一个通过无符号转换将参数转换为整数。 第二个通过无符号转换将参数转换为long。 这两个是1.8新加入的方法。
13.
第一个是用来表示于二进制补码形式的byte值的比特数,第二个用来表示于二进制补码形式的byte值的字节数
PS:哪里不对可以在评论中指出,我都会一个个看的,觉得少东西也可以评论中提出来,我会做补充。