trimToSize() метод класса StringBuilder, для чего нужен?

167
06 октября 2021, 05:40
    StringBuilder stringBuilder = new StringBuilder("polodik");
    stringBuilder.setLength(50);
    System.out.println(stringBuilder.capacity());
    stringBuilder.trimToSize();
    System.out.println(stringBuilder.capacity());
    System.out.println(stringBuilder);

результат в консоли:

50
50
polodik 

про метод trimToSize()

Attempts to reduce storage used for the character sequence. If the buffer is larger than necessary to hold its current sequence of characters, then it may be resized to become more space efficient. Calling this method may, but is not required to, affect the value returned by a subsequent call to the {@link #capacity()} method.

И так вопрос: Что делает и как правильно использовать метод trimToSize, чтобы увидеть хоть какое то влияние на результат в консоле?

Answer 1

метод trimToSize() класса StringBuilder и StringBuffer уменьшает размер символьного буфера до минимального допустимого значения

Правда у вас задан размер строки setLength(50), по этому вы и не видите разницы

Вот так посмотрите:

    public static void main(String[] args) {
        StringBuilder stringBuilder = new StringBuilder("polodik");
        System.out.println(stringBuilder.capacity());
        stringBuilder.trimToSize();
        System.out.println(stringBuilder.capacity());
        stringBuilder.setLength(50);
        System.out.println(stringBuilder.capacity());
    }
READ ALSO
Attempt to invoke virtual method com.android.volley.Request

Attempt to invoke virtual method com.android.volley.Request

Я новичок в андроид программирование и столкнулся вот с такой проблемой который сам не смог решитьПолный текст ошибки выглядит так:

314
Cannot access, не могу заимплементить интерфейс

Cannot access, не могу заимплементить интерфейс

Столкнулся с проблемой, не могу заимплементить интерфейс классу, помеченному аннотацией @Service, причем в другом проекте у меня с этим проблем...

183
Как отключить пагинацию в elasticsearch

Как отключить пагинацию в elasticsearch

Создаю запрос в elasticsearch через NativeSearchQueryBuilder(), но ответ приходит мне в форме страниц, те

208
SUM () OVER (Partition By) на MySQL 5.7

SUM () OVER (Partition By) на MySQL 5.7

Гуру MySQL, подскажите, как синтаксически переписать примерно такой запрос, где используется SUM (

253