在Java中,我有一个基元类型int "pubNumber"。
我想把它转换为 "长"(不是原始的)据我了解,有以下几种方法可以做到这一点。
1. Long.valueOf(pubNumber)
2. (long) pubNumber
3. new Long(pubNumber)
谁能帮帮我,哪种方法是最好的,为什么?
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
你应该避免使用 new Long(pubNumber)
因为这个人总是会创建一个新的 Long
例如。
另一方面。Long.valueOf(pubNumber)
将返回一个缓存的 Long
如果要转换为 Long
是在-128和127之间。
(long) pubNumber
应该和 Long.valueOf(pubNumber)
,因为在投向 long
,它将被自动装箱到 Long
的自动装箱,而且我相信,在这一过程中。long
到 Long
用途 Long.valueOf()
.
Long.valueOf(pubNumber)和new Long之间的区别在于,使用new Long()你将总是创建一个新的对象,而使用Long.valueOf(),如果值在[-128到127]之间,可能会返回long的缓存值。
所以,你应该选择Long.valueOf方法,因为它可能会给你节省一些内存。