gpt4 book ai didi

java - long 和 double 每次都工作的时候,为什么 Java 中的数字类型那么多?

转载 作者:行者123 更新时间:2023-11-29 07:42:47 25 4
gpt4 key购买 nike

现在我一直在尝试学习Java编程,我想知道为什么我们要使用Floatshortint什么时候我们可以只使用 LongDouble

我不明白那部分。

最佳答案

很好的问题,特别是如果您来自 JavaScript 这样的语言,它不会区分数字类型。

Java 比那些语言更严格一些,您编写的所有内容都首先编译为所谓的字节码,这有点像汇编语言,但只能由 Java 虚拟机 (JVM) 读取。因此,您必须准确指定需要多少位来表示您的数据。即使使用像 String 这样更抽象的概念,它仍然会变成 JVM 可以读取的代码,其中准确说明了它代表多少位。

这是它在 Java 中的分解方式:

  • byte = 1 字节,signed = 1 个符号位和 7 个量级位 ( Read more on Wikipedia )
  • short = 2 Bytes, signed = 1 个符号位和 15 个幅度位
  • int = 4 字节,signed = 1 个符号位和 31 个量值位
  • long = 8 字节,signed = 1 个符号位和 63 个量值位
  • float = 4 字节,signed = 1 个符号位,8 个指数位,23 个尾数位 ( Read more on Wikipedia )
  • double = 8 字节,signed = 1 个符号位,11 个指数位,52 个尾数位
  • char = 2 字节,无符号 = 16 位
  • boolean = 1 字节,无符号 = 8 位
  • booleanbooleans = 1 nibble = 4 bits 数组中

请注意,这些都是小写。这意味着它们是基本类型,并且与数组一起构成Java 中所有数据 的构建 block 。

还有这些 Title-Case 类,Java 有时会使用这些类来包装基元(包装是指当您使用类来表示类中的对象时,例如购买平板电脑并将其放在盒子。你只关心平板电脑,但你得到它周围的盒子来临时代表和持有它)。这些如下:

  • Byte 包裹byte
  • Short 换行 short
  • Integer 包装 int
  • Long 包裹long
  • Float 包裹float
  • Double 包裹 double
  • Character 换行 char
  • Boolean 包装 boolean
  • Number 充当通用数字,可以是 ByteShortIntegerLongFloatDouble 或自定义数字,如 BigInteger。你甚至可以用它来制作你自己的数字!

总结

您绝对可以只对所有数字使用 doublelong!但是,当你处理如此多的数字时(记住:Java 中的一切都归结为数字),你应该使用尽可能少的数据来完成一项任务,这样你就不会耗尽内存.

正如我们所见when the view counter for Gangnam Style surpassed the limit of an int,即使像 Google 这样的大公司也会采用这种做法,表明他们更喜欢一开始只使用 32 位数字作为计数器而不是 64 位数字。不过,既然他们需要它,他们就会更新。这是我建议您采用的做法!

关于java - long 和 double 每次都工作的时候,为什么 Java 中的数字类型那么多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28575327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com