目录
首先我们得先了解java的对象结构
可以看到分别由三个部分组成对象头,实例数据,以及填充位
查看JDK1.8 String源码可以看到一个String对象由以下组成:
@Stable
private final byte[] value;
/** Cache the hash code for the string */
private int hash; // Default to 0
/** use serialVersionUID from JDK 1.0.2 for interoperability */
private static final long serialVersionUID = -6849794470754667710L;
那么我们就可以根据这个来计算了,首先如果是一个空字符串那么就是: