java valueof和parse什么区别,java parseint和valueof
/*** Byte类中构造了一个缓存,将-128-127这256个数存放在cache数组中* 数组下标为0-256*/private static class ByteCache { private ByteCache(){} static final Byte cache[] = new Byte[- + 127 + 1]; static { for(int i = 0; i 转换成封装类,返回的是cache中的数据*/public static Byte valueOf(byte b) { final int offset = 128; return ByteCache.cache[(int)b + offset];}/*** valueOf(String)的本质是调用了parseByte方法* rad活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!!radix参数怎么用呢?《java valueof和parse什么区别,java parseint和valueof》来自互联网同行内容,若有侵权,请联系我们删除!
以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中的数据*/public static Byte valueOf(byte b) { final int offset = 128; return ByteCache.cache[(int)b + offset];}/*** valueOf(String)的本质是调用了parseByte方法* rad活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看ix表示参数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 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)也是同理
86911934
《java valueof和parse什么区别,java parseint和valueof》来自互联网同行内容,若有侵权,请联系我们删除!