Mik*_*uel 17
Java中的字符串存储取决于字符串的获取方式.支持char阵列可以在多个实例之间共享.如果不是这种情况,那么你有一个通常的对象开销加上一个指针和三个ints的存储空间通常会产生16个字节的开销.然后,后备阵列需要2个字节,char因为chars是UTF-16代码单元.
对于"Apple Computers"不共享后备阵列的位置,最低成本将是
int用于偏移量,长度和记忆的哈希码 - 12Bint数组长度.因此,大约72B的实际有效载荷构成44.4%.有效载荷构成更长的字符串.
在Java7中,一些JDK实现正在废除支持阵列共享,以避免char在内存中固定大[] s.这允许他们取消三个中int的两个.
对于长度为16的字符串,将计算更改为64B,其中实际有效负载占50%.
| 归档时间: |
|
| 查看次数: |
5444 次 |
| 最近记录: |