int和long之间的区别

作者: Laura McKinney
创建日期: 1 四月 2021
更新日期: 16 可能 2024
Anonim
Differences between travel, longtime living, and temporarily living. This issue focuses on Foods.
视频: Differences between travel, longtime living, and temporarily living. This issue focuses on Foods.

内容


数据类型int和long在Java中描述的两种整数数据类型中。在Java中,类型int和long是带符号的,+ ve和-ve值。 Java不支持unsigned int和long类型。 int和long数据类型之间的根本区别是每种类型的宽度。数据类型int的int类型变量的宽度为32位。另一方面,long类型变量的数据类型long的宽度为64位。下面的比较表显示了int和long之间的其他差异。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础整型
基本的数据类型int为32位。long的数据类型为64位。
字节数如果以字节计,则int为4字节。如果以字节为单位,则long为8个字节。
范围在Java中,int类型的范围是–2,147,483,648到2,147,483,647。在Java中,long类型的范围是
–9,223,372,036,854,775,808至9,223,372,036,854,775,807。
关键词用来声明int类型变量的关键字是“ int”。用于声明long类型变量的关键字为“ long”。
记忆与long相比,存储int变量所需的内存更少。与int相比,存储long变量所需的内存更大。

整数类型的定义

数据类型int是最常用的数据类型,其中包含一个整数值。一个int变量可以保存的值不能太短也不能太长。通常,将int变量的值用作控制循环的循环变量,或者将其用作数组的索引变量。与int数据类型相比,byte和short数据类型的范围更短,但是即使int变量的值的范围更短,它们也不能替代int。这背后的原因是,当我们在表达式中使用数据类型byte和short时,然后在评估该表达式时,编译器会将数据类型byte和short提升为int。因此,由此可以说,最好在需要整数的地方使用int。
让我们看一下int数据类型的用法。


字节a = 70;字节b = 80; int c = a * b; //没有错误。字节d = a + 10; //编译时错误。

正如您在上面的代码中观察到的,两个字节变量a和b包含值70和80,这是有效的字节范围值。但是,a * b的中间结果;超出了字节的限制。因此,如果在表达式中使用字节,short和char变量,则编译器会自动将其升为int类型。现在,您可以看到a * b的结果被分配给一个不会导致任何错误且可以顺利编译的int变量,因为变量a和b被提升为int类型,而将int类型分配给int类型却没有。导致错误。

在代码的最后一行中,您可以看到一个表达式,其中将值10添加到字节变量“ a”,其结果仍未超过该字节的限制。但是,将表达式“ a + 10”的中间结果分配给字节变量“ d”会导致编译时错误,因为表达式表达式字节变量“ a”被提升为int类型。并且不允许将int类型分配给byte类型。因此,这会导致编译时错误。

长型的定义

与字节,short和int类型相比,long数据类型具有最大的范围和宽度。在Java中,long类型是64位有符号整数类型。 long类型用于int类型不大以容纳所需值的情况。 long的范围是–9,223,372,036,854,775,808到9,223,372,036,854,775,807,这非常大,可以容纳较大的值,例如大整数。我们可以通过下面的示例来了解类型。

类权重{public static void main(String args){int item; int wt_per_item;长克长箱;项目= 10000000; //指定编号项目wt_per_item = 10000; //以千克为单位指定一件商品的重量= wt_item * 1000; //将重量转换为克Box =项目*克; //计算以克为单位的盒子重量System.out.ln(“ ItemNumber” + item); System.out.ln(“每件商品的重量” + wt_per_item +“ kilos”); System.out.ln(“盒子的重量(克)” +盒子+“公斤”); }的商品数量10000000每件商品的重量10000公斤克的盒子重量100000000000000公斤

观察上面代码中的输出;对于包含10000000件物品的盒子的整个盒子的重量计算的结果,其中每件物品的重量为10000公斤。箱重量的计算值(以克为单位)不能由int变量保存。因此,有时在计算或保留大值时有必要使用long类型。


  1. int和long类型之间的基本区别在于它们的宽度,其中int是32位,而long是64位。
  2. 如果用字节而不是位来计数int和long类型,则int类型是4个字节,如果使用int类型,即long是8个字节,则long类型只是两倍。
  3. 在Java中,int类型的范围是–2,147,483,648到2,147,483,647,而long类型的范围是–9,223,372,036,854,775,808到9,223,372,036,854,775,807,这远远大于int类型。
  4. 用于声明int类型的变量的关键字是“ int”。另一方面,用于声明long类型变量的关键字为“ long”。
  5. 通常,保存类型为int的值所需的内存要比long少。

结论:

在编写代码时,如果需要中等范围的值,则可以使用int类型,但是当任何表达式产生的输出较大时,或者将较大的值用于计算时,必须使用long类型变量来保存价值。