在Java中将int(原始)转换为Long(包装)的最佳方法

问题描述 投票:3回答:3

我在Java中具有原始类型int“ pubNumber”。

我想将其转换为Long”(不是原始语言),据我了解,有以下几种方法可以做到这一点。

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

任何人都可以帮助我,哪种方法是最好的方法,为什么?

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

Long.valueOf(pubNumber)是这样做的最佳方法,因为它使用高速缓存中的值(如果存在)。

读取here

public static Long valueOf(long l)返回一个Long实例表示指定的long值。如果不是一个新的Long实例必要时,通常应优先使用此方法构造函数Long(long),因为此方法可能会产生通过频繁缓存,大大提高了空间和时间性能要求的值。请注意,与整数类,不需要此方法来缓存特定范围。

Parameters: l-一个长整数。Returns:表示l的Long实例。因为: 1.5


3
投票

您应避免使用new Long(pubNumber),因为那将总是创建一个新的Long实例。

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

(long) pubNumber的行为应与Long.valueOf(pubNumber)相同,因为在转换为long之后,它将自动装箱为Long,并且我相信long会自动装箱为Long使用Long.valueOf()


2
投票

Long.valueOf(pubNumber)和new Long之间的区别是,使用new Long()您将始终创建一个新对象,而使用Long.valueOf()时,如果该值介于[-128至127]。

因此,您应该首选Long.valueOf方法,因为它可以节省一些内存。

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