Byte.decode("10")和Byte.valueOf("10") - 有什么区别?

Nul*_*ice 3 java wrapper

Java 6 API原始类型包装器具有成对的静态方法decode(String s)valueOf(String s).它们都返回一个包装类类型的新对象,并且它们都没有注释为已弃用.有人知道他们之间的区别吗?例如:

Byte b1 = Byte.decode("10");
Run Code Online (Sandbox Code Playgroud)

Byte b2 = Byte.valueOf("10");
Run Code Online (Sandbox Code Playgroud)

dan*_*ben 6

根据文档(http://java.sun.com/javase/6/docs/api/java/lang/Byte.html#valueOf%28java.lang.String%29),valueOf只接受可以解释为的字符串带符号的十进制值,虽然decode采用十进制,十六进制或八进制字符串(前缀为0x,#或0) - 虽然valueOf过载也明确地采用基数.

  • 如果你知道前导0表示八进制字符串,那就不那么好笑了. (2认同)