java - 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) 的用途。“确定具有指定名称的系统属性的长值”是什么意思?
解决方案
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
主要数据类型。
推荐阅读
- javascript - 使用需要 CSRF 令牌的遗留端点
- java - Android自动点击编程
- python-3.x - 如何从 datetime 模块中消除此错误并有效地运行代码
- jmeter - Jmeter 后处理器和控制器
- reactjs - Material-UI 未使用 generateClassName 渲染所有组件
- python - 无法从 python 3.9 中的 tweepy.auth 导入 OAuthHandler
- python - 如何使用变量来表示方法?
- powershell - 使用 Powershell 搜索多个日志文件模式时出现内存泄漏
- python - 如何将熊猫数据框分配给类变量?
- postgresql - 将 TIME 与 DURATION 存储为两种不同的类型