Может ли локальное хранилище считаться безопасным? [закрыто]

Я попытаюсь объяснить это с помощью некоторого примера.

public class StringBuilderDemo {
     public static void main(String[] args) {
         StringBuilder sb = new StringBuilder();
         System.out.println(sb.length());
         System.out.println(sb.capacity());
     }
}

length() - длина последовательности символов в построителе, так как этот stringbuilder не содержит никакого содержимого, его длина будет 0.

capacity() - количество выделенных пространств символов. Когда вы пытаетесь построить stringbuilder с пустым содержимым, по умолчанию он принимает размер инициализации как length + 16, который равен 0 + 16. поэтому емкость вернет здесь 16.

Примечание. Емкость, возвращаемая методом capacity (), всегда больше или равна длине (обычно больше) и автоматически расширяется по мере необходимости, чтобы

Логика функции емкости:

  1. Если вы не инициализируете stringbuilder каким-либо контентом, емкость по умолчанию будет считаться 16 символами .
  2. Если вы инициализируете stringbuilder любым контентом, тогда емкость будет содержать длину контента + 16.
  3. Когда вы добавляете новый контент в объект строковой сборки, если текущей емкости недостаточно для выполнения новое значение, то оно будет увеличиваться на (предыдущая емкость массива + 1) * 2.

Этот анализ берет из фактического кода StringBuilder.java

144
задан Antti Haapala 24 July 2016 в 08:06
поделиться