Java 可以包含大多数内存空间的变量?
什么类型的变量可以包含100000000(十进制数)占用最多的内存空间Java 可以包含大多数内存空间的变量?,java,c,Java,C,什么类型的变量可以包含100000000(十进制数)占用最多的内存空间 C中的int C中的字符串 Java中的字符串(使用unicode) 我真的不想直接回答这个问题,所以你可以看看这里: 此外,如何在二进制和十进制之间进行转换也可能很有用: 一个Java字符串。在引擎盖下,Java字符串由一个具有3个字段的对象组成,其中一个字段指向包含字符的单独数组对象。当然,Java字符串由16位字符1组成 如果您担心内存使用超过所有其他标准,请不要使用Java。但对于大多数应用程序,内存
我真的不想直接回答这个问题,所以你可以看看这里:
- 一个Java字符串。在引擎盖下,Java字符串由一个具有3个字段的对象组成,其中一个字段指向包含字符的单独数组对象。当然,Java字符串由16位字符1组成
如果您担心内存使用超过所有其他标准,请不要使用Java。但对于大多数应用程序,内存使用是最不重要的
值得注意的是,100000000可以使用Java
int
表示,它的大小与C有符号或无符号(32位)整数相同
此外,Cint
不一定大到足以表示100000000。在某些平台上,int
是16位,这是C标准允许的
1-实际上,这是依赖于Java平台的。例如,在Java 9中,他们修改了
字符串
实现,对完全由0到255个字符组成的字符串,每个字符使用一个字节
。看见但是尽管如此,Java字符串仍然比C字符串占用更多的空间。C标准没有规定许多存储要求。事实上,您可以:
- 256位C
s,需要32个字节来存储任何内容(参见@nonnb的注释)int
- 一个宽C字符串(
),使用UCS-4/UTF-32字符(显然,所有GNU实现都是这样)wchar\u t[]
- 使用32位
s(必须在具有32位字节的系统上)的C实现char
int
与“本机机器字”大小相同。顺便说一句,21位或更大的wchar\u t
是一致的C实现支持所有Unicode的唯一方法。这也是推荐的方法(请参阅C99中的STDC_ISO_10646宏)。使用16位wchar\u t
的实现简单地被破坏了。多字符序列呢?UTF-8和16怎么样?