长与整数,长与整数,使用什么以及何时使用?

2022-08-31 07:10:38

有时我看到API正在使用or or or or,但我无法弄清楚如何为此做出决定?longLongintInteger

我应该什么时候选择什么?


答案 1

Long是 的形式,并且是 的对象形式。ObjectlongIntegerint

使用 64 位。使用32位,因此只能容纳高达±20亿(-231到+231-1)的数字。longint

应使用 和 ,除非需要使用从 继承自 的方法,例如 。 方法通常使用盒装(包装)版本,因为它们需要适用于任何 ,并且基元类型(如 or )不是 。longintObjecthashcodeJava.util.collectionsObjectObjectintlongObject

另一个区别是 和 是按值传递的,而 和 是按引用传递的值,就像所有非原始 Java 类型一样。因此,如果可以修改 or(不是,它们在不使用 JNI 代码的情况下是不可变的),那么使用一个或另一个就存在另一个原因。longintLongIntegerLongInteger

最后一个区别是,或 可以是 。LongIntegernull


答案 2

有几件事是使用基元类型无法做到的:

  • 具有值null
  • 在它们上同步
  • 将它们用作泛型类的类型参数,并与此相关:
  • 将它们传递给与Object

除非需要其中任何一个,否则您应该更喜欢基元类型,因为它们需要较少的内存。