Long.getLong(s)、Long.valueOf(s)、Long.parseLong(s) 之间的区别,其中 "s" 是字符串类型

Difference between Long.getLong(s), Long.valueOf(s), Long.parseLong(s) where "s" is a String Type

我想将 String 转换为 Long。但我找到了 4 种不同的方式来存档该提案。

Long.getLong(s) - Determines the long value of the system property with the specified name.

Long.valueOf(s) - Returns a Long object holding the value of the specified String

Long.parseLong(s) - Parses the string argument as a signed decimal long.

new Long(s) - Constructs a newly allocated Long object that represents the long value indicated by the String parameter

除此之外 "parseLong()" return 一个 long 值和另外 3 个 return Long 对象。 它们之间有什么区别,它们的最佳使用情况是什么?(什么时候使用它们),哪个性能更好?

提前致谢。


编辑:

This gave me the difference between "valueOf(s)" and "new Long(s)" 和 还发现 the diference between "valueOf(s)" and "Long.parseLong(s)"

但我还是不明白 Long.getLong(s) 有什么用。 "Determines the long value of the system property with the specified name" 是什么意思?


Long.getLong(s)不会把里面的字符串转成long(“123”不会变成123)。里面的字符串是一个特定的名字,native library会return相应的一个long值

Long.valueOf(s) 当 s 是字符串时类似于这个:new Long(Long.parseLong(s))

Long.valueOf(l) 当 l 是 long 类型时会将主要数据类型 long 转换为 Long。在 java

中阅读有关拆箱和自动装箱的信息

Long.parseLong(s)会将里面的字符串转成long值。

所以它们都是不同的,除了 Long.valueOf(l)Long.parseLong(s) 它们几乎相同,但是第一个 return 是一个 Long 对象,另一个 returns long 主要数据类型。