首页 > 解决方案 > Long.getLong(s)、Long.valueOf(s)、Long.parseLong(s) 之间的区别,其中“s”是字符串类型

问题描述

我想将字符串转换为长。但我找到了 4 种不同的方式来归档该提案。

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

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

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) 的用途。“确定具有指定名称的系统属性的长值”是什么意思?


标签: javadifference

解决方案


Long.getLong(s)不会将里面的字符串转换为长字符串(“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主要数据类型。


推荐阅读