在java中找到系统的字节顺序

use*_*796 11 java jvm

如果机器是bigindian或littleindian,我发现checkink算法(int C)

int is_big_endian(void)
{
    union {
        uint32_t i;
        char c[4];
    } bint = {0x01020304};

    return bint.c[0] == 1; 
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在*java中找到这样的东西*我不想使用内置的库,因为这是一个面试问题.我想在java中找到它.

Nim*_*Nim 34

我不相信,但你可以尝试:

import java.nio.ByteOrder;

if (ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)) {
  System.out.println("Big-endian");
} else {
  System.out.println("Little-endian");
}
Run Code Online (Sandbox Code Playgroud)

  • 它不是lib,它是一个内置类.没有它们,你就不会在Java中走得太远.事实上,如果没有它们,你就无法到达任 如果他们不喜欢你的答案,那就问问自己:我真的想要一家提出这些愚蠢问题的公司吗? (3认同)
  • @ user93796,谁说?如果有人为我设置测试,问题的关键是不实现排序算法,我会使用现有的实现.任何其他方法都是愚蠢的IMO. (3认同)
  • 你是否会聘请一个编写自己(并且可能有错误)的sort()方法的人,而不是使用经过测试的,内部很好理解的方法,如果它完成了这项工作. (3认同)
  • 实际上,我强烈怀疑还有其他方法可以做到这一点.Java被设计为独立于平台,因此几乎所有方法都可以在big-endian或little-endian机器上提供相同的结果. (2认同)