当前位置: 首页 > 知识库问答 >
问题:

Java 字符串生成器可以容纳多少个字符?

通沛
2023-03-14

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);  
}

字符串生成器变量“url”是否具有最大容量,或者它可以容纳所有内容?

共有3个答案

白祺然
2023-03-14

Java9引入了JEP 254:压缩字符串。这允许通过在字节数组中存储字符来更有效地存储字符串。如果所有字符都是拉丁文1,则每个字符使用一个字节,否则每个字符使用两个字节。

所以答案是:如果启用了紧凑字符串(默认),并且您的StringBuilder仅包含拉丁1字符,则最大大小为Integer.MAX_VALUE*,否则为Integer.MAX_VALUE/2*

*或者稍微少一点,请参阅“Java数组是否有最大大小?

熊嘉茂
2023-03-14

如果您使用此链接,可能会清除更多Oracle文档字符串生成器缓冲区容量

现在您要声明任何StringBuilder类的Capacity,然后为此定义一个构造函数StringBuilder

< code > StringBuilder(int init capacity):-创建一个具有指定初始容量的空字符串生成器。

在这里,由于参数intStringBuilderClass可以达到的最大容量将为2147483647。

在< code>StringBuilder类中有各种关于容量上下文的方法,这些方法也考虑< code>int类型的参数。

void setLlong(int newLlong):-设置字符序列的长度。如果newLlong小于long(),字符序列中的最后一个字符将被截断。如果newLlong大于long(),则在字符序列的末尾添加空字符。

void ensureCapacity(int minCapacity):-确保容量至少等于指定的最小值。

这些方法也接受< code>int类型的参数。因此,使用这些方法或构造函数,您将能够生成一个最大容量为< code>2147483647的对象。

乔鸿骞
2023-03-14

是的,它有最大整数2147483647(技术上)的容量限制。

StringBuilder在内部保存char[]object中的字符,数组的大小有限制。在其他线程上阅读更多信息

 类似资料:
  • 问题内容: 在Java中,StringBuilder是否有最大字符限制? StringBuilder变量“ url”是否具有最大容量,或者它可以容纳所有内容? 问题答案: 是的,它的最大整数容量有2147483647(技术上)的限制。 在内部将特性置于对象中,并且数组的大小受到限制。

  • 问题内容: 我知道这可能是一个非常笨拙的问题,但是我没有找到可以获取此信息的可靠可靠资源。 在Android应用程序中,我试图通过继续向其添加更多数据来将数据保留在String中。最后,当用户关闭应用程序或单击“保存按钮”时,我将其登录到数据.csv文件中。 我想知道一个简单的String在Java中可以容纳多少数据? ,这样,即使String数据类型用完分配的内存,应用也不会崩溃。顺便说一句,我

  • 问题内容: 我正在尝试Sphere Online Judge(SPOJ)的“下一个回文”问题,在该问题中,我需要找到最多100万个整数的回文。我曾考虑过使用Java的函数来反转字符串,但是它们是否允许字符串这么长? 问题答案: 你应该能够得到一个长度为String的字符串 总是2147483647(2 31 - 1) (由Java规范定义,阵列的最大尺寸,这对于内部存储String类用途) OR

  • 介绍 在JDK提供的StringBuilder中,拼接字符串变得更加高效和灵活,但是生成新的字符串需要重新构建StringBuilder对象,造成性能损耗和内存浪费,因此Hutool提供了可复用的StrBuilder。 使用 StrBuilder和StringBuilder使用方法基本一致,只是多了reset方法可以重新构建一个新的字符串而不必开辟新内存。 StrBuilder builder =

  • 如果UTF-8是8位,不意味着最多只能有256个不同的字符吗? 前128个代码点与ASCII中的相同。但是它说UTF-8可以支持多达百万个字符? 这是怎么回事?

  • 问题内容: 我的朋友给我发了一个问题,他在一次关于字符串对象的Java认证模拟考试中看到了一个问题: 调用此方法时将创建多少个字符串对象?考试给出的正确答案是3。但是我认为是5。 “嗨” “ 5” “ HI5” “H” “H” 我错了吗? 问题答案: String makeStrings() { String s = “HI”; //String literal s = s + “5”; //co