以Byte类中的valueOf和parseByte为例

valueOf是转换为Byte封装类型

而parseByte是转换为byte基本数据类型

看一下jdk1.8的部分源码

/**
* Byte类中构造了一个缓存,将-128-127这256个数存放在cache数组中
* 数组下标为0-256
*/
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));}
}/**
* 第一个是将基本类型转换成封装类,返回的是cache中的数据
*/
public static Byte valueOf(byte b) {final int offset = 128;return ByteCache.cache[(int)b + offset];
}/**
* valueOf(String)的本质是调用了parseByte方法
* radix表示参数s识别为什么进制的数据
*/
public static Byte valueOf(String s, int radix)throws NumberFormatException {return valueOf(parseByte(s, radix));
}/**
* 默认10进制
*/
public static Byte valueOf(String s) throws NumberFormatException {return valueOf(s, 10);
}/**
* parseByte返回的是byte基本数据类型的值
*/public static byte parseByte(String s, int radix)throws NumberFormatException {int i = Integer.parseInt(s, radix);if (i < MIN_VALUE || i > MAX_VALUE)throw new NumberFormatException("Value out of range. Value:\"" + s + "\" Radix:" + radix);return (byte)i;
}

radix参数怎么用呢?其实parseByte/valueOf还可以将其他进制的数转换成10进制

比方说valueOf("0011", 2)就表示将二进制的0011转换成10进制的3

parseByte("0011", 2)也是同理

java中的valueOf与parseXXX有啥区别相关推荐

  1. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  2. 【Java学习笔记之二十九】Java中的equals和==的用法及区别

    Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String(&quo ...

  3. Java中print、printf、println的区别 详解

    Java中print.printf.println的区别详解 printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和pr ...

  4. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  5. Java中的LongAdder和AtomicLong有什么区别?

    ● Java中的LongAdder和AtomicLong有什么区别? 考点:JDK 参考回答: JDK1.8引入了LongAdder类.CAS机制就是,在一个死循环内,不断尝试修改目标值,直到修改成功 ...

  6. Java中 byte[]数组序列化和fastjson序列化区别

    Java中 byte[]数组序列化和fastjson序列化区别 Java中,对于对象可以通过序列化成byte数组或者序列化成json形式,这里做下两者的对比. 首先看下实现方式: 1 byte数组序列 ...

  7. JAVA中的方法和构造方法有什么区别

    JAVA中的方法和构造方法有什么区别 1.方法有返回类型,方法名小写,不能和类名相同:构造方法没有返回类型,void也不行,名与类名相同. 2.构造方法是初始化对象的重要途径,所以就算你给一个类没有定 ...

  8. 转 Java中final、finally、finalize的区别与用法

    Java中final.finally.finalize的区别与用法 1.简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构 ...

  9. 分析Java中的三种不同变量的区别

    1.首先分析Java中的三种不同变量的区别,如下表所示   概念 默认值 其他 类变量 也叫静态变量,是类中独立于方法之外的变量 用static 修饰 有默认初始值,系统自动初始化. 如boolean ...

最新文章

  1. python之itemgetter函数:对字典列表进行多键排序
  2. 午夜十分之凌晨三点半
  3. 2021牛客OI赛前集训营-提高组(第五场)D-牛牛的border【SAM】
  4. node.js android 聊天,Node.js实现简单聊天服务器
  5. 令人惊讶的手机端实时 4K 风格迁移!谷歌又出牛文
  6. java 中的事物怎么配置_java – 在hibernate中如何以编程方式设置事务的隔离级别,或者如何创建具有不同隔离级别的两个事务...
  7. dsu on tree入门
  8. pyqt5 显示更新进度条_python如何通过pyqt5实现进度条
  9. IB心理学生物分析模块
  10. android studio代码格式化设置,Android studio kotlin代码格式化操作
  11. 九。温暖地待人,你才会得到意想不到的惊喜结果。
  12. 大数据开发都需要掌握哪些编程语言
  13. MacBook上有哪些适合运营人用的高效的软件工具和使用技巧
  14. Pdf文档在线编辑控件源码及演示
  15. cesium 鼠标操作习惯修改 鼠标左键旋转 鼠标右键平移
  16. 华为相册的神仙功能,真的超好用!
  17. vs code 离线安装 CodeLLDB 包
  18. MySQL数据库集群实战(1)——MySQL数据库基础知识
  19. VBA Trim()函数 去除头部和尾部的空格 - VBA函数学习笔记(二)
  20. 软件测试面试题汇集(2)

热门文章

  1. html的dom是什么意思,DOM是什么意思
  2. response.expires = -1是什么意思
  3. BUG记录-Halcon error 2042 Feature has expired
  4. 【OpenCV3】Ubuntu16.04/18.04下安装最新版OpenCV3.4.13
  5. Understanding Flash Player with Adobe Scout
  6. matlab 绘制椭圆锥波束指向示意图
  7. openpnp - configure - 矫正里程碑
  8. CSS hover 改变其他元素状态
  9. HP 6531s系列笔记本开启硬件虚拟化技术(Intel VT)的方法
  10. 不知不觉又到了万(wu)众(liao)期(tou)待(ding)的十一黄金周了