`
liss
  • 浏览: 842374 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java中字符串的最大长度

阅读更多

在cpp中为了可移植性,string的长度是string::size_type,突然就想知道java允许的最大字符串长度为多少。看String的源码:

public final class String
  
110       implements java.io.Serializable, Comparable<String>, CharSequence
  
111   {
  
112       /** The value is used for character storage. */
  
113       private final char value[];
  
114   
  
115       /** The offset is the first index of the storage that is used. */
  
116       private final int offset;
  
117   
  
118       /** The count is the number of characters in the String. */
  
119       private final int count;

 

String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了。又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。不过这仅仅是对字符串变量而言,如果是字符串字面量(string literals),如“abc"、"1a2b"之类写在代码中的字符串literals,那么允许的最大长度取决于字符串在常量池中的存储大小,也就是字符串在class格式文件中的存储格式:


CONSTANT_Utf8_info {
        u1 tag;
        u2 length;
        u1 bytes[length];
}

    u2是无符号的16位整数,因此理论上允许的string literal的最大长度是2^16=65536。然而实际测试表明,允许的最大长度仅为65534,超过就编译错误了,有兴趣可以写段代码试试。

分享到:
评论

相关推荐

    字符串长度的判断 JAVA

    以下将详细讲解如何在Java中进行字符串长度的判断以及如何截取字符串。 首先,创建一个字符串对象通常使用`String`类的构造函数或者双引号括起来的字符串字面量。例如: ```java String panduan = "你好"; ``` 在...

    java获取字符串长度不够补

    java获取字符串长度,长度不够补相应的字符串

    Java字符串长度不够前面或后面补0.txt

    ### Java字符串长度不够前面或后面补0 在Java编程中,有时我们需要确保字符串达到特定的长度,如果实际长度不足,则需要在字符串的前部或后部添加特定字符(如0)来填充,使得最终字符串满足预设长度的要求。本文将...

    Java检索字符串中是否存在某字符

    在Java编程语言中,字符串处理是一项基础且重要的任务。标题提到的"Java检索字符串中是否存在某字符",实际上涉及到字符串的查找算法。这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配...

    Java分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`split()`方法来实现,该方法是Java `String`类的一个成员。在...

    JAVA的字符串拼接与性能

    如果你用”+”来连接固定长度的字符串,可能性能上会稍受影响,但是如果你是在 循环中来”+”多个串的话,性能将指数倍的下降。假设有一个字符串,我们将对这个字符串做大量循环拼接操作,使用”+”的话将得到最低的...

    java 字符串指定长度

    标签“源码”可能暗示博客中深入探讨了字符串操作的内部实现,包括查看Java String类的源码,了解其底层是如何处理字符串长度的。源码阅读有助于更深入地理解Java的内存管理和字符串操作的效率。 至于标签“工具”...

    截取指定长度的字符串

    "截取指定长度的字符串"这个主题涉及到的是如何从一个字符串中提取出特定长度的部分。这在处理用户输入、数据展示、信息提取等多个场景中都非常常见。接下来,我们将深入探讨这个知识点。 首先,让我们明确什么是...

    java 中字符串只中英数字混合需要分割的解决办法

    这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...

    java中字符串的操作汇总

    字符串长度 (`length`) 通过调用 `length` 方法可以获取一个字符串的长度,即字符串中字符的数量。注意这里指的是Unicode字符的数量。 ```java public int length(); ``` 示例代码: ```java String s = "Hello"; ...

    java 分解字符串

    在Java编程语言中,分解字符串是一项常见的任务,它涉及到对字符串进行分析,将字符串分割成多个子字符串。这个过程通常被称为字符串分割。在Java中,我们主要使用`String`类提供的`split()`方法来实现这一功能。...

    OJ_将数组中的字符串按指定长度重新分割

    标题“OJ_将数组中的字符串按指定长度重新分割”涉及的是一个在线编程挑战(OJ,Online Judge)的问题,其核心是处理...在这个过程中,我们需要处理可能出现的特殊情况,如字符串长度小于目标长度、数组为空等情况。

    java 字符串分割

    Java 字符串分割 Java 字符串分割是 Java 编程...同时,我们也学习了相关的知识点,例如字符串分割的基本概念、Java 中的字符串分割方法、Java 中的字符串分割算法、Java 中的 ArrayList 集合和 Java 中的倒序输出。

    Java中的字符串相关处理

    ### Java中的字符串相关处理 #### 引言 在Java编程语言中,字符串处理是一个核心且广泛使用的领域。不同于其他编程语言将字符串视为字符数组,Java将字符串视为`String`类型对象,这一设计使得字符串处理更加高效...

    java中的字符串处理

    1. **获取长度**:`int length()` 方法用于获取字符串的长度,即字符串中字符的数量。 2. **字符串文字**:在Java中,可以直接使用字符串文字来创建`String`对象,例如: ```java String s = "abc"; System.out....

    java 分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某个部分。这通常通过使用`String`类提供的`split()`方法来完成。本篇文章将深入探讨...

    java求字符串的正向反向最大公共字符串

    在Java编程中,求字符串的正向和反向最大公共字符串是一个常见的字符串处理问题。这个问题的核心在于找到一个字符串与其反转后的最长相同子序列。我们可以通过动态规划或者双指针等方法来解决这个问题。下面将详细...

    Java字符串前面或后面补0(适用于等不同长度比较) .txt

    Java字符串长度不够,将其前面补0或者后面补0,适用于字典序比较前,将要比较字符串的位数保持一致,再进行比较。

    java 字符串 正则表达式 详细实例代码

    通过运行和调试这些代码,你可以加深对Java字符串、正则表达式以及日期时间格式化的理解。 总之,理解和熟练掌握Java中的字符串操作、正则表达式以及日期时间格式化对于任何Java开发者来说都是必不可少的技能。通过...

    Java实现字符串的匹配.doc

    在 Java 中,字符串匹配可以通过多种方式实现,例如使用正则表达式、哈希表、素数乘积等方法。 使用素数乘积实现字符串匹配 在本文中,我们使用素数乘积的方法来实现字符串匹配。该方法的思路是:首先将每个字母...

Global site tag (gtag.js) - Google Analytics