Сколько символов может содержать Java StringBuilder?

имеет ли StringBuilder ограничение символов для максимальной емкости в JAVA.

StringBuilder url=new StringBuilder();

stmt = connnection.createStatement();
String sql="SOME QUERY";
rs = stmt.executeQuery(sql);
while(rs.next())
{
    String emailId=rs.getString("USER_EMAIL_ID");
     url.append(emailId);  
}

имеет ли переменная StringBuilder " url " максимальную емкость, или она может содержать все?

2 ответов


Да, он имеет ограничение в емкости максимального целого числа, которое 2147483647 (технически).

StringBuilder внутренне удерживает chracters в char[] объект, а массив имеет ограничение по размеру. подробнее об этом читайте в другой теме


если вы пройдете по этой ссылке, это может очистить тебя больше Объем Буфера Oracle Docs String Builder

теперь вы хотите объявить емкость любого класса StringBuilder, а затем один конструктор StringBuilder(int initCapacity) определен для этого.

StringBuilder(int initCapacity) : - создает пустой строитель строк с заданной начальной емкостью.

здесь из-за параметра as int максимальная емкость, что a StringBuilder класс может достичь будет 2147483647.

существуют различные методы, касающиеся этого контекста емкости в StringBuilder класс, эти методы также учитывают параметры типа int.

пустота setLength (int newLength): - задает длину последовательности символов. Если newLength меньше length (), последние символы в последовательности символов усекаются. Если newLength больше length (), в конце символа добавляются нулевые символы последовательность.

недействительным ensureCapacity(тип int minCapacity) : - гарантирует, что емкость по крайней мере равна указанному минимуму.

эти методы также принимают аргумент как int тип . Таким образом, используя эти методы или contructors вы сможете создать объект с максимальной емкостью 2147483647.