当前位置: 首页 > 知识库问答 >
问题:

为什么不对所有整数值使用long

柳灿
2023-03-14
    null
  • 只使用long数据类型有什么特别的缺点吗?
  • 使用int数据类型代替long数据类型有意义吗?

共有1个答案

关飞翼
2023-03-14

例如,使用int数据类型而不是long数据类型有意义吗?

绝对是的。

只使用一个或两个变量,你不会看到性能的差异,但当应用程序增长时,它会提高应用程序的速度。

查看此问题以获得更多信息。

另外,在Oracle基元类型文档中,您可以看到一些建议和内存使用情况:

type    memory usage    recommended for
------- --------------- ---------------------------------------------------
byte    8-bit signed    The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters.
short   16-bit signed   same as byte
int     32-bit signed   
long    64-bit          Use this data type when you need a range of values wider than those provided by int
float                   Use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency.

字节:

int:

默认情况下,int数据类型是一个32位带符号的2的补码整数,最小值为-2‰,最大值为2‰-1。在Java SE8及更高版本中,可以使用int数据类型表示无符号32位整数,该整数的最小值为0,最大值为2‰-1。

:

此外,它将澄清您的思想和代码,比如说,您有一个表示对象ID的变量,这个对象ID永远不会使用小数,所以,如果您在代码中看到:

int id;

您现在将确定此ID的外观,否则

double id;

不会。

int quantity;
double price;
 类似资料:
  • 问题内容: 我有一个班级和年龄段。但是,当我更改对象的年龄时,该类的所有其他对象也会更改。 有人可以帮助解决这个问题吗? 问题答案: 静态变量 是 类变量, 因此从变量声明中删除为: 根据java docs: 在声明中具有static修饰符的字段称为静态字段或类变量。它们与类关联,而不与任何对象关联。该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。

  • 我有一个基本的疑问,我们可以增加整数类对象的引用,而不是任何其他类的引用(D类有1个整数数据成员和一个参数化构造函数)。 这里x和d都是引用,但我们仍然可以增加整数引用,而不增加任何其他引用。我错过了一些非常基本的东西,请帮助我。

  • 问题内容: 我最近继承的应用程序关于构造函数的弃用警告已满: 有谁知道或可以指出为什么将诸如以下这样的简单内容替换为以下内容的原因: 现在,显然不赞成使用警告本身并不是问题,但是您是否可以想象,如果删除此构造函数,数以百万计的LOC会痛苦地哭泣吗? 在我对基准测试的简短介绍中,执行基准测试大约需要50%的时间。 问题答案: 本来打算包含有关日期的所有逻辑,但是API设计人员最终意识到,到目前为止,

  • 问题内容: 我对为什么Integer和int可以在Java中互换使用感到困惑,即使一个是原始类型,而另一个是对象也是如此? 例如: 要么 问题答案: 发布的文章的前几句话很好地描述了它: 您不能将int(或其他原始值)放入集合中。集合只能容纳对象引用,因此您必须将原始值装箱到适当的包装器类中(在int情况下为Integer)。当您从集合中取出对象时,您将得到放入的Integer。如果需要一个int

  • 我在Google DataProc集群上运行spark作业。但Spark似乎没有使用集群中所有可用的vCore,如下所示 基于这样和这样的其他一些问题,我已经设置了集群以使用来考虑资源分配的vcpus和内存 但当我提交带有自定义spark标志的作业时,看起来YARN不尊重这些自定义参数,默认使用内存作为资源计算的标准 能帮助某人弄清楚这里发生了什么?

  • output指示在1s暂停之前执行16个流元素,然后再执行16个元素,依此类推。因此,即使forkjoinpool是用100个线程创建的,也只有16个线程被使用。 当我使用超过23个线程时,就会出现这种模式: