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太小,请使用longlong太小,请使用BigIntegerCollection,处理null...),请使用Integer/ Long代替Int32 bits (4byte)-2,147,483,648 to 2,147,483,647Long64 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