写入一个 int 整数时,容量不够了(初始容量是 10),这时会引发扩容

    1. buffer.writeInt(6);
    2. log(buffer);

    扩容规则是

    • 如何写入后数据大小未超过 512,则选择下一个 16 的整数倍,例如写入后大小为 12 ,则扩容后 capacity 是 16
    • 如果写入后数据大小超过 512,则选择下一个 2^n,例如写入后大小为 513,则扩容后 capacity 是 29=512 已经不够了)
    • 扩容不能超过 max capacity 会报错

    结果是

    1. read index:0 write index:12 capacity:16
    2. +-------------------------------------------------+
    3. | 0 1 2 3 4 5 6 7 8 9 a b c d e f |
    4. +--------+-------------------------------------------------+----------------+
    5. |00000000| 01 02 03 04 00 00 00 05 00 00 00 06 |............ |
    6. +--------+-------------------------------------------------+----------------+