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

UHD*_*nte 2 java difference

我想将字符串转换为长整型。但我发现了 4 种不同的方法来归档该提案。

Long.getLong(s) - 确定具有指定名称的系统属性的长整型值。

Long.valueOf(s) - 返回保存指定 String 值的 Long 对象

Long.parseLong(s) - 将字符串参数解析为带符号的十进制长整型。

new Long(s) - 构造一个新分配的 Long 对象,表示 String 参数指示的 long 值

除此之外,“parseLong()”返回一个 long 值,其他 3 个返回 Long 对象。它们之间有什么区别,它们的最佳使用情况是什么?(何时使用它们),哪一种性能更好?

提前致谢。


编辑 :

这给了我 "valueOf(s)" 和 "new Long(s)" 之间的区别,并且还发现了"valueOf(s)" 和 "Long.parseLong(s)" 之间的区别

但我仍然不明白 Long.getLong(s) 的用途。“确定具有指定名称的系统属性的长值”是什么意思?


Ala*_*eep 6

Long.getLong(s)不会将里面的字符串转换为long(“123”不会变成123)。里面的字符串是一个特定的名称,本机库将相应地返回一个 long 值。

Long.valueOf(s)当 s 是字符串时与此类似:new Long(Long.parseLong(s))

Long.valueOf(l)当 l 是long类型时,会将主数据类型 long 转换为 Long。了解 java 中的拆箱和自动装箱

Long.parseLong(s)会将里面的字符串转换为长值。

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