代码之家  ›  专栏  ›  技术社区  ›  Oleksandr

在java中,不同的数据类型如何依赖于操作系统?

  •  0
  • Oleksandr  · 技术社区  · 2 年前

    我正在用java处理音频文件(我的实验室里的作业),我从文件中读取字节,然后将它们转换为int和short原始数据类型。据我所知,基本数据类型取决于编译设置和操作系统。那么他们是如何依赖的呢?java中是否存在不变的数据类型?(我指的是不依赖于操作系统和编译设置的数据类型)

    2 回复  |  直到 2 年前
        1
  •  4
  •   OscarRyz    2 年前

    Java原语数据类型不依赖于操作系统。

    这些是这些类型的值,它们总是相同的。

    类型 字节数 范围
    byte 1. -128至127
    short 2. -32768至32767
    int 4. -2147483648至2147483647

    你可以了解更多关于他们的信息 here

    数据如何存储在文件中可能是另一个主题。

        2
  •  3
  •   meriton    2 年前

    所有原语类型都在Java语言规范中完全定义,其中 writes :

    这个 整体式类型 byte , short , int long ,其值分别为8位、16位、32位和64位有符号2的补码整数,以及 char ,其值是表示UTF-16代码单元的16位无符号整数(§3.1)。

    浮点类型为 float ,其值与32位IEEE 754二进制32浮点数完全对应,以及 double ,其值与64位IEEE 754二进制64浮点数完全对应。

    也就是说,行为上没有明显的差异。当然,运行时可以自由地对这些数据类型使用不同的表示,只要它保证行为保持不变。例如,运行时可以存储 字节 如果它确保其行为与 字节 ,例如,通过添加丢弃高56位的额外指令。由于此类优化没有功能影响,通常不会对内存使用产生实质性影响,因此通常不值得考虑。