java - 声明不必要的较大数据类型、变量类型及其性能

标签 java c++ c primitive-types

这里是初学者。需要一些更深入的洞察。四种整数类型:byte , short , int ,和long 。因此,除了它们的 Activity 范围外,我还应该了解它们的行为。

int i = 1000 ; 之间的差异和long l = 1000 ;

我所说的差异是指内存中分配的空间、使用它们时的速度等。在现实生活中设计算法时我必须牢记的任何事情。

一行,为什么使用int如果long可以做int超过int .

在网上搜索但没有找到准确的答案。

最佳答案

long 的大小是 int 的两倍,至少在 Java 和大多数 C++ 平台中是这样(在 C++ 中,您实际上必须定义 long 的长度,具体取决于平台可能是 32 位或 64 位,这就是 C++ 中存在 long long 的原因。

除了一般的内存使用之外,这也可能会影响处理时间,因为可能需要通过总线发送更多数据。您可以在 64 位机器上并行发送 2 个整数。

但很可能您不必考虑所有这些,因为大多数系统的资源并不那么紧张,因此请选择您认为合适的任何内容。

编辑:

如果您正在处理巨大的数据集,那么使用 int 而不是 long 可能会节省一些空间,但在这些情况下,设计算法实际上可能更明智它仅对立即需要的数据进行操作并尽快释放它,即不要将所有内容都保留在内存中。

关于java - 声明不必要的较大数据类型、变量类型及其性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31781693/

相关文章:

c++ - 这个指针类型是什么以及如何使用它?

c - 打开和关闭 GLFW 窗口后无法获取控制台输入

java - 如何将字符串拆分为重叠的字符对

java - 不要从父类(super class)构造函数中调用子类方法

c++ - 是否专门执行 catch block ?

c++ - 无法使用 Microsoft CodeGen 使用 Visual Studio 2015 和 Clang 3.7 构建 Google Test

java - Maven 构建失败,如何在 Eclipse 中将 -source 1.5 更改为 -source 7 或更高版本

java - 在 Java 中对文本文件进行排序

c++ - "virtual"关键字在 C++ 的基类中是可选的吗?

c - MLF 是一种公平的调度协议(protocol)吗?