Java字符串的最大长度
JAVA 字符串 最大 长度
2023-09-11 14:16:05 时间
在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];
Java字符串(String类)(下) 前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~
Java字符串(String类)(上) 前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~
Java字符串 String类表示字符串。Java程序中的所有字符串文字,比如“abc”,都是作为这个类的实例实现的。字符串是常量,它们的值在创建后不能更改。
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-1=65535。然而实际测试表明,允许的最大长度仅为65534,超过就编译错误了,有兴趣可以写段代码试试,估计是length还不能为0。
文章转自庄周梦蝶 ,原文发布时间 2009-01-15
Java字符串(String类)(下) 前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~
Java字符串(String类)(上) 前面小编给大家分享了Java语法的知识,今天和大家一起学习关于Java字符串的相关知识,字符串在校招笔试中也是常考的一类题目,也是非常的重要,希望看完这篇文章,能对你们有所帮助,fighting冲冲冲~~~
Java字符串 String类表示字符串。Java程序中的所有字符串文字,比如“abc”,都是作为这个类的实例实现的。字符串是常量,它们的值在创建后不能更改。
相关文章
- [Java基础] java多线程关于消费者和生产者
- Java 开发环境配置--eclipse工具进行java开发
- 求字符串全排列的递归算法(java程序)
- 关于java字节码框架ASM的学习
- Java实现 蓝桥杯 算法提高 高精度减法(JDK方法)
- Java实现 LeetCode 467 环绕字符串中唯一的子字符串
- Java实现 LeetCode 398 随机数索引
- Java实现 LeetCode 99 恢复二叉搜索树
- Java实现 LeetCode 77 组合
- java实现 洛谷 P1056 排座椅
- java实现棋盘上的麦子
- Java实现币值最大化问题
- Java实现寻找和为定值的多个数
- Java实现 蓝桥杯VIP 算法训练 字符串编辑
- Java 蓝桥杯 算法训练 字符串的展开 (JAVA语言实现)
- 对如下字符串(234453)[234]{2324}分析它的括号使用是否正确,括号匹配(Java实现)
- java parse 带英文单词的日期字符串 转 date (转化新浪微博api返回的时间)
- java中boolean与字符串或者数字1和0的转换
- java 正则匹配空格字符串 正则表达式截取字符串
- 【JAVA】 02-Java对象细节
- 【JAVA】 02-Java对象细节
- 华为OD机试 - 字符串重新排列、字符串重新排序(Java & JS & Python)
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
- How to improve Java's I/O performance( 提升 java i/o 性能)
- 6-4 字符串加密(Java解法,两种网上的类型题)
- 当年的Java考试:JAVA&移动应用&大数据-大三-社区疫苗接种管理系统(全部源码·保姆式呵护)
- Java字符串池(String Pool)深度解析
- PHP/Python/js/Golang/Java:时间转为人类可读的字符串格式:刚刚、几分钟前、几小时前、几天前
- java 比较两个日期大小(1)
- java实现字符串匹配问题之求两个字符串的最大公共子串
- java 泛型
- 【刷题记录15】Java工程师丨腾讯面试真题(3)
- java入门 常见问题0006:字符串的内容比较应当用String的equals方法,而不是用 ==