Answers:
Long
是的Object
形式long
,Integer
是的对象形式int
。
在long
采用64位。在int
使用32位,所以只能容纳人数达到±2十亿(-2 31到2 31 -1)。
您应该使用long
和int
,除非需要使用继承自的方法Object
,例如hashcode
。Java.util.collections
方法通常使用带框(Object
-wrapped)版本,因为它们需要适用于任何版本Object
,并且基本类型(例如int
或long
)不是Object
。
另一个区别是long
和int
都是传递值,而Long
和Integer
是引用传递值,就像所有非原始Java类型一样。因此,如果可以修改Long
或Integer
(不是,不使用JNI代码,它们是不可变的),则还有另一个理由使用一个或另一个。
最后的区别是a Long
或Integer
可以是null
。
int
,按住数字时使用。int
太小,请使用long
long
太小,请使用BigInteger
Collection
,处理null
...),请使用Integer
/ Long
代替Int
32 bits (4byte)
-2,147,483,648 to 2,147,483,647
Long
64 bits (8byte)
-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
如果您使用的变量在32位范围内,请使用Int
,否则请使用long
。通常将long用于科学计算,诸如此类的东西需要很高的准确性。(例如pi的值)。
YouTube就是其中一个选择一个例子的例子。他们首先将视频观看次数计数器定义为
int
当流行视频收到的观看次数超过2,147,483,647时溢出。由于Int
计数器不能存储超出其范围的任何值,因此YouTube将计数器更改为64位变量,现在最多可以计数9,223,372,036,854,775,807次观看。了解您的数据并选择适合64位变量的类型将比32位变量占用两倍的内存。
当涉及到一个非常长的数字(可能超过32位)来表示时,您可以使用很长的时间来确保您不会出现奇怪的行为。
在Java 5中,您可以使用装箱和装箱功能来完全相同地使用int和Integer。这意味着您可以:
int myInt = new Integer(11);
Integer myInt2 = myInt;
在进出拳击让您无需任何额外的转换int和整数之间切换(同为Long
,Double
,Short
太)
您可以使用 int
它,但Integer
其中包含一些帮助程序方法,这些方法可以帮助您对整数进行一些复杂的操作(例如Integer.parseInt(String)
)
a)对象类“ Long”与原始类型“ long”。(至少在Java中)
b)基本类型有不同的(甚至不清楚的)内存大小:
Java-全部清除:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
C ..只是一团糟:https : //en.wikipedia.org/wiki/C_data_types