现在我一直在尝试学习Java编程,我想知道为什么我们使用这样的东西Float
, short
, and int
当我们可以只是使用Long
and Double
?
我不明白那部分。
很好的问题,特别是如果你来自这样的语言JavaScript
它不区分数字类型。
Java 比这些语言更严格一些,你编写的所有内容首先都会编译为所谓的字节码,这有点像汇编语言,但它只能由 Java 虚拟机 (JVM) 读取。因此,您必须准确指定需要多少位来表示数据。即使使用更抽象的概念,例如String
,它仍然成为 JVM 可以读取的代码,它准确地说明了它代表了多少位。
下面是它在 Java 中的分解方式:
-
byte
= 1 个字节,有符号 = 1 个符号位和 7 个幅度位(在维基百科上阅读更多内容)
-
short
= 2 个字节,有符号 = 1 个符号位和 15 个幅度位
-
int
= 4 字节,有符号 = 1 个符号位和 31 个幅度位
-
long
= 8 字节,有符号 = 1 个符号位和 63 个幅度位
-
float
= 4 字节,有符号 = 1 个符号位,8 个指数位,23 个尾数位(在维基百科上阅读更多内容)
-
double
= 8 字节,有符号 = 1 个符号位,11 个指数位,52 个尾数位
-
char
= 2 字节,无符号 = 16 个幅度位
-
boolean
= 1 字节,无符号 = 8 位
-
boolean
在一个数组中boolean
s = 1 半字节 = 4 位
注意这些都是小写。这意味着他们是原语,并且与数组一起构成了以下的构建块所有数据都用Java编写.
还有这些标题-大小写Java 有时用来包装基元的类(包装是指当您使用类来表示类内的对象时,就像购买平板电脑并将其放入盒子中一样。您只关心平板电脑,但您将其周围的盒子暂时代表并持有它)。具体如下:
-
Byte
wraps byte
-
Short
wraps short
-
Integer
wraps int
-
Long
wraps long
-
Float
wraps float
-
Double
wraps double
-
Character
wraps char
-
Boolean
wraps boolean
-
Number
充当通用号码,并且可以是Byte
, Short
, Integer
, Long
, Float
, Double
,或自定义数字,例如BigInteger
。您甚至可以用它来制作自己的数字!
Summary
你绝对可以使用double
and long
对于您所有的号码!但是,当您处理如此多的数字时(请记住:Java 中的所有内容实际上都归结为数字),您应该使用尽可能少的数据来完成任务,这样就不会耗尽内存。
正如我们所见,即使像 Google 这样的大公司也采用这种做法当《江南Style》的观看次数突破了限制int,表明他们一开始更喜欢仅使用 32 位数字而不是 64 位数字作为计数器。不过,现在他们需要它,他们进行了更新。这是我建议您采用的做法!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)