Java Integer.valueOf()静态函数

Java Integer.valueOf()静态函数,java,integer,value-of,Java,Integer,Value Of,为什么b=292我不能理解这个静态函数 什么时候 Integer b = Integer.valueOf("444",8); System.out.println(b); 为什么b=1092 我感谢你的帮助 提前感谢您提供的基数是八进制和六进制,因此您可以根据提供的基数获得输出: b=Integer.valueOf("444",16); System.out.println(b) 根据java文档: 返回一个整数对象,该对象包含从 使用第二个字符给定的基数进行分析时指定的字符串 参数

为什么b=292我不能理解这个静态函数

什么时候

 Integer b = Integer.valueOf("444",8);
 System.out.println(b);
为什么b=1092 我感谢你的帮助
提前感谢

您提供的基数是八进制和六进制,因此您可以根据提供的基数获得输出:

 b=Integer.valueOf("444",16);
 System.out.println(b)
根据java文档:

返回一个整数对象,该对象包含从 使用第二个字符给定的基数进行分析时指定的字符串 参数。第一个参数被解释为表示带符号的 第二个参数指定的基数中的整数,与 参数被提供给parseInt(java.lang.String,int) 方法。结果是一个表示整数的整数对象 由字符串指定的值


因为基8中的444=基10中的292,基16中的444=基10中的1092。

像往常一样,文档在那里阅读它们

返回一个整数对象,当使用第二个参数给定的基数进行分析时,该对象包含从指定字符串中提取的值

这意味着,如果将16作为第二个参数传递,则该数字将被解释为十六进制数字,因此:4*16^2+4*16+4=1092。八进制也是一样,只有基数8。

“444”是字符串,16被称为基数,需要注意的是十进制是默认的基数

现在,基数是参数的当前基数,在本例中是16,即十六进制,需要转换为默认值,即十进制
444(十六进制)到十进制是1092。

您是否检查了
valueOf(字符串数据,整数基数)
的文档?您阅读了吗?你知道基数是什么吗?444之间有区别₈ 和444₁₆?基数16是您的最后一个值;)
static Integer valueOf(String s, int radix)