在Java中把int(primitive)转为Long(wrapper)的最佳方法。

问题描述 投票:0回答:2

在Java中,我有一个基元类型int "pubNumber"。

我想把它转换为 ""(不是原始的)据我了解,有以下几种方法可以做到这一点。

1. Long.valueOf(pubNumber)
2. (long) pubNumber
3. new Long(pubNumber)

谁能帮帮我,哪种方法是最好的,为什么?

java casting integer long-integer autoboxing
2个回答
2
投票

Long.valueOf(pubNumber) 是最好的方法,因为它使用缓存中的值,如果它是存在的。

读取 此处

public static Long valueOf(long l) 返回一个代表指定的long值的Long实例,如果不需要新的Long实例,本方法一般应优先使用构造函数Long(long),因为本方法通过缓存经常请求的值,可能会产生明显更好的空间和时间性能。如果不需要一个新的Long实例,一般来说,应该优先使用这个方法,而不是使用构造函数Long(long),因为这个方法通过缓存频繁请求的值,可能会产生明显更好的空间和时间性能。需要注意的是,与Integer类中的对应方法不同,本方法不需要缓存特定范围内的值。

参数 l - 一个长值。 返回值:一个代表l的Long实例。 一个代表l的Long实例。 1.5


3
投票

你应该避免使用 new Long(pubNumber)因为这个人总是会创建一个新的 Long 例如。

另一方面。Long.valueOf(pubNumber) 将返回一个缓存的 Long 如果要转换为 Long 是在-128和127之间。

(long) pubNumber 应该和 Long.valueOf(pubNumber),因为在投向 long,它将被自动装箱到 Long的自动装箱,而且我相信,在这一过程中。longLong 用途 Long.valueOf().


2
投票

Long.valueOf(pubNumber)和new Long之间的区别在于,使用new Long()你将总是创建一个新的对象,而使用Long.valueOf(),如果值在[-128到127]之间,可能会返回long的缓存值。

所以,你应该选择Long.valueOf方法,因为它可能会给你节省一些内存。

© www.soinside.com 2019 - 2024. All rights reserved.