例如,使用int 数据类型而不是long 数据类型是否有意义?
绝对是的。
内存/磁盘使用情况
仅使用一两个变量您不会看到性能差异,但当应用程序增长时,它会提高您的应用程序速度。
检查this question for further info。
还可以查看Oracle primitive type documentation,您可以看到一些建议和内存使用情况:
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.
byte:
字节数据类型是8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。 字节数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。
short:
短数据类型是16 位有符号二进制补码整数。它的最小值为 -32,768,最大值为 32,767(含)。与字节一样,适用相同的准则:您可以在大型数组中使用 short 来节省内存,在内存节省实际上很重要的情况下。
int:
默认情况下,int数据类型是32位带符号二进制补码整数,最小值为-2³¹,最大值为2³¹-1。在 Java SE 8 及更高版本中,您可以使用 int 数据类型来表示 无符号 32 位整数,其最小值为 0,最大值为 2³²-1。
long:
长数据类型是64 位二进制补码整数。有符号长整数的最小值为 -2⁶³,最大值为 2⁶³-1。在 Java SE 8 及更高版本中,您可以使用 long 数据类型来表示 无符号 64 位 long,其最小值为 0,最大值为 2⁶⁴-1。 当您需要比 int 提供的值范围更广的值时使用此数据类型。
float:
float 数据类型是单精度 32 位 IEEE 754 浮点。它的值范围超出了本讨论的范围,但在 Java 语言规范的浮点类型、格式和值部分中指定。与 byte 和 short 的建议一样,如果您需要在大型浮点数数组中节省内存,请使用浮点数(而不是双精度数)。此数据类型绝不应用于精确值,例如货币。
代码可读性
另外,它会澄清你的想法和你的代码,比方说,你有一个代表对象 ID 的变量,这个对象 ID 永远不会使用小数,所以,如果你在代码中看到:
int id;
您现在可以确定此 ID 的外观,否则
double id;
不会。
另外,如果你看到:
int quantity;
double price;
您会知道quantity 不允许使用小数(仅限完整的对象),但价格可以...这使您的工作(其他程序员会阅读您的代码)更容易。