我想将字符串转换为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)的用途。 “确定具有指定名称的系统属性的长值”是什么意思?
答案 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
主要数据类型。