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

时间:2018-07-18 12:05:21

标签: java difference

我想将字符串转换为Long。但是我发现有4种不同的方式归档那个对象。

  

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

     

Long.valueOf(s)-返回一个Long对象,其中包含   指定的字符串

     

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

     

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

除了“ parseLong()”返回一个long值,其他三个返回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)的用途。 “确定具有指定名称的系统属性的长值”是什么意思?


1 个答案:

答案 0 :(得分:1)

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

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主要数据类型。