【发布时间】:2011-05-22 02:24:45
【问题描述】:
在 Java 中,如果我有一个字符串 x,我如何计算该字符串中的字节数?
【问题讨论】:
-
人们可能希望使用字符串来表示 HTTP 响应的主体,并使用大小来设置“Content-Length”标头,该标头以八位字节/字节而不是字符指定。 w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
-
数据库列可能有字节长度限制,例如Oracle 中的 VARCHAR2(4000 字节)。人们可能想知道所需编码中字符串的字节数,以了解该字符串是否适合。
-
@iX3 和我尝试做的完全一样。
-
我相信这个问题有两种可能的解释,取决于意图:一种是“我的字符串使用了多少内存?”。答案由下面的@roozbeh 提供(可能是模数 VM 微妙之处,如压缩的 OOPS)。另一个是,“如果我将字符串转换为 byte[],该字节数组将使用多少内存?”。这是 Andrzej Doyle 回答的问题。差异可能很大:UTF8 中的“Hello World”是 11 个字节,但字符串(每个 @roozbeh)是 50 个字节(如果我的数学是正确的)。
-
我应该补充一点,这 11 个字节不包括保存它们的 byte[] 对象的开销,所以比较有点误导。