Java StringBuilder

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32768743/article/details/81708511

先上类图
这里写图片描述
源码之下,果然震惊多
java.lang.AbstractStringBuilder#hugeCapacity居然会抛OutOfMemoryError

        if (Integer.MAX_VALUE - minCapacity < 0) { // overflow
            throw new OutOfMemoryError();
        }

怎么计算一个数的长度,绝对想不到是比较出来的

    final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
                                      99999999, 999999999, Integer.MAX_VALUE };

    // Requires positive x
    static int stringSize(int x) {
        for (int i=0; ; i++)
            if (x <= sizeTable[i])
                return i+1;
    }

猜你喜欢

转载自blog.csdn.net/qq_32768743/article/details/81708511
今日推荐