在一个测试中,我看到Long.decode
的工作方式类似于Long.parseLong
的简单数字格式字符串(我的意思是不含'0x'
的字符串,...)。
System.out.println(Long.decode("123") + Long.decode("123")); // prints 246
System.out.println(Long.parseLong("123") + Long.parseLong("123")); // same as above
可以在任何地方使用
Long.decode
而不是Long.parseLong
吗?如果不是,为什么? 最佳答案
它们的行为相似,但是Long.parseLong
返回原始的long
,而Long.decode
返回新的Long
对象,这需要更多的时间和资源。因此,对于简单的情况,最好使用Long.parseLong
。但是,Long.decode
提供了更大的灵活性,因为它允许您解码十六进制(例如0xFFFF)或八进制(例如010 == 8)的输入。