JDK源码(8)-Byte
一、抽象类Number
类继承关系
这里面的原子类、BigDecimal后面都会详细介绍。
属性和抽象方法
二、概述
所有的属性,最小-128,最大127,SIZE和BYTES代码比特值的二进制补码长度。
一个静态内部类做缓存
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));}}
三、常见方法
compare
public static int compare(byte x, byte y) {return x - y;}
toUnsignedInt、toUnsignedLong
将一个byte转换为一个无符号的int值,跟0xff做与运算
public static int toUnsignedInt(byte x) {return ((int) x) & 0xff;}
valueOf,参数radix代表进制
public static Byte valueOf(String s, int radix)throws NumberFormatException {return valueOf(parseByte(s, radix));}
decode:将字符串解码WieByte类型
支持二进制,八进制,十六进制,会调用Integer的decode方法进行处理,默认十进制,关于这个方法后面再讲。
请参考:https://blog.csdn.net/m0_37609579/article/details/103558588
public static Byte decode(String nm) throws NumberFormatException {int i = Integer.decode(nm);if (i < MIN_VALUE || i > MAX_VALUE)throw new NumberFormatException("Value " + i + " out of range from input " + nm);return valueOf((byte)i);}
也有一些强转成基本数据类型的方法,都很简单
public byte byteValue() {return value;}public short shortValue() {return (short)value;}public int intValue() {return (int)value;}public long longValue() {return (long)value;}public float floatValue() {return (float)value;}public double doubleValue() {return (double)value;}public String toString() {return Integer.toString((int)value);}
hashCode就是该byte对应的int值
public static int hashCode(byte value) {return (int)value;}
没有了,很简单的一个类。
JDK源码(8)-Byte相关推荐
- java int类源码,一起学JDK源码 -- Integer类
Integer类为java基本类型int的包装类,除了前面提到的Byte类,Short类中的大部分方法,Integer类中还提供了很多处理int类型的方法,接下来就让我们一起看看吧. 基础知识: 1. ...
- JDK源码学习笔记——Integer
一.类定义 public final class Integer extends Number implements Comparable<Integer> 二.属性 private fi ...
- 从JDK源码角度看Long
概况 Java的Long类主要的作用就是对基本类型long进行封装,提供了一些处理long类型的方法,比如long到String类型的转换方法或String类型到long类型的转换方法,当然也包含与其 ...
- JDK源码解析 InputStream类就使用了模板方法模式
JDK源码解析 InputStream类就使用了模板方法模式. 在InputStream类中定义了多个 read() 方法,如下: public abstract class InputStream ...
- JDK源码学习-基础
JDK源码学习 目录 基础 1. 安装 1.1 下载JDK 1.2 配置环境变量 1.3 验证 2. 简单的程序 2.1 编写代码 2.2 编译文件 2.3 执行类 3. java基本类型 基础 1. ...
- 【JDK源码】java.io包常用类详解
看完java.io的JDK源码,在网上发现一篇关于java.io中的类使用的文章总结的很全面,看完之后在原文的基础上加了一些自己的总结如下构成了本篇文章.原文地址 一.Java Io流 1. Java ...
- 【JDK源码】java.lang包常用类详解
接下来的几天开始JDK源码的学习和总结,之前看<java编程思想>的时候看到java的基础知识有很多,其中支撑着这些基础的基础中的基础当属JDK.JDK的基础代码里面又分了很多基础的模块, ...
- JDK源码学习路线~每天学一点~每天进步一点点
很多java开发的小伙伴都会阅读jdk源码,然而确不知道应该从哪读起.以下为小编整理的通常所需阅读的源码范围. 标题为包名,后面序号为优先级1-4,优先级递减 1.java.lang 1) Objec ...
- JDK源码(1)-阅读指引
说在最前面的话: 其实JDK源码的阅读,网上资料特别多,我阅读的最主要目的是自己学习,所以我读的可能不那么好,我的角度是从源码和源码对应的注释读起,顺便还能练练英语. 接下来准备对JDK的常见源码进行 ...
- 从JDK源码看关闭钩子
关闭钩子 Java提供了Shutdown Hook机制,它让我们在程序正常退出或者发生异常时能有机会做一些清场工作.使用的方法也很简单,Java.Runtime.addShutdownHook(Thr ...
最新文章
- 开工啦!这本书助你快速回归高效工作状态
- python中复制n次字符串_在Python中查找字符串中多次出现的字符串
- Juice Extractor dp
- 【HihoCoder - 1268】九宫 (dfs,深搜)
- 关于数据持久化的一个简介
- 微信桌面版如何同时登陆两个微信账号
- 注册vmvare账号验证码问题
- 致加西亚的信 谁动了我的奶酪
- java web 速成_渐进式Web应用程序:速成课程
- CRC-16 CCITT
- DBA职业规划技术成长路线
- PHP微信防止token过期,微信调用接口,防止Access_token过期的方法
- 无法启动计算机的杀毒软件,电脑中毒杀毒软件无法启动任务管理器也被禁用怎么办?...
- 2018-2019第一学期Java助教心得
- 计算机毕业设计Java国漫论坛网站(源码+系统+mysql数据库+Lw文档)
- mysql 查询随机10条数据 (转载)
- 小米云备份的正确打开方式,你学会了吗
- adjacency list(邻接表)神物
- 2016年linux认证,2016年Linux认证考试练习题及答案
- SQL Server 2008性能故障排查(三)——I/O