【Java】String字符串的最大长度是多少?
先说结论:
对于Java字符串的最大长度,要分为2种情况进行讨论。
① 编译期:一般情况下,最大长度为65534。
② 运行期:Integer.MAX_VALUE。
接下来通过对一个字节码文件反编译来解释一下为什么?
一、编译期String字符串的最大长度为什么是65534?
当我们使用javac命令对.java文件进行编译后,会生成相关类的.class文件。
关于.class文件的结构,大家如果感兴趣的话可以自行搜索了解一下,或者我后面如果有精力会专门写一篇,不了解.class文件的结构并不影响接下来的理解。
我们只需要知道编译后的.class文件里有一个结构叫做常量池。
常量池 中主要存放两大类常量:字面量(Literal)和符号引用(Symbolic References)。字面量比较接近于Java语言层面的常量概念,如文本字符串、被声明为final的常量值等。而符号引用则属于编译原理方面的概念(这个与本文无关,故不深入讲解)。
也就是说,我们在java文件中声明的字符串字面量会存放在.class文件的常量池中。
常量池中每一个常量都是一个表,表结构的第一位是一个u1类型(一个字节的无符号整数)的标志位,用来表示当前常量属于哪种常量类型,比如String字面量标志就是8,用CONSTANT_String_info标识符表示。
CONSTANT_String_info型常量结构如下:
【Java】String字符串的最大长度是多少?相关推荐
- Java String字符串长度不足指定位数补0
Java String字符串长度不足指定位数补0 自己项目中有个需求:需要5位随机数-范围在1-99999 随机数可以利用Random()来获取,但是想要生成的随机数都是5位数,那就需要做一点小处理啦 ...
- String字符串的最大长度是多少?
转自:String字符串的最大长度是多少?在学习和开发过程中,我们经常会讨论 short ,int 和 long 这些基本数据类型的取值范围,但是对于 String 类型我们好像很少注意它的" ...
- java在字符串前后加引号,Java String字符串内容实现添加双引号
Java String字符串内容实现添加双引号 作者: 91奔跑的蜗牛 更新时间:2020-09-12 15:45:46 原文链接 右侧开启环境实践本页内容 使用转义符 \ (反斜杠) String ...
- 关于Java的String字符串常量的长度问题(Error:(14, 22) java: 常量字符串过长)
虽然这种问题应该很难遇到,但是遇到了也会感到莫名其妙.不知道大家有没有遇到那种在java代码里用字符串写sql语句的情况,但是如果sql语句字符串的长度太长的话就会报错. 代码如下: 代码A Stri ...
- Java String 字符串
2019独角兽企业重金招聘Python工程师标准>>> 转载自:http://my.oschina.net/brucelee80/blog String String是引用类型而非基 ...
- Java String字符串和整型int的相互转换
String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的. String转换为int String 字符串转整型 int 有以下两种方式: Integer.pa ...
- Java教程:Java String字符串和整型int的相互转换
Java教程String 在编程中被广泛使用,所以掌握 String 和 int 的相互转换方法是极其重要的.本节前面部分主要讲解了 String 转换 int 和 int 转换 String 方法, ...
- Java - String字符串的部分操作
String转换为int String 字符串转整型 int 有以下两种方式: Integer.parseInt(str) Integer.valueOf(str).intValue() 注意:Int ...
- Java 分割字符串---按字节长度分割带有中文字符串
中文在不同编码中占用的字节数是不同的,GBK编码中,一个汉字占两个字节,UTF-8编码格式中,一个汉字占3个字节. public static List<String> chineseSp ...
最新文章
- 用友uclient客户端下载手机_萤火语音2021手机版下载_萤火语音app最新版客户端下载...
- PHP 中 9 大缓存技术总结
- 【深度学习】收藏|神经网络调试Checklist
- LeetCode 13 罗马数字转整数
- C语言运算符优先级列表
- li标签之间的空隙问题(转)
- 数量查看_正则表达式学习之分割字符及数量词练习
- python 函数参数的传递(参数带星号的说明) 元组传递 字典传递
- 我是如何用百度知道做小众企业站流量推广的?
- josn转bln的方法
- 五种“网络钓鱼”实例解析及防范技巧(转)
- linux手动连接网络打印机驱动_中兴新支点Linux操作系统添加网络打印机的方法...
- 合肥工业大学机器人技术五十六题
- 以太坊的区块和存储(一):区块头
- termux配置python安装kali_安卓用termux安装kali linux教程
- 创建json数组与json数组渲染到HTML
- EverBox(同步网盘)邀请
- 苹果cmsv10仿9080YY电影网站红色大气响应式免费模板
- 基于微信小程序菜谱查询app设计
- Android提取字符串中的特殊字符(以手机号为例)并修改样式和添加点击事件
热门文章
- RabbitMQ之交换机
- 大学计算机一级网络题,大学计算机一级考试试题及答案
- TCP报文格式及三次握手详解
- 基于AI的自然语言处理
- 第六届蓝桥杯决赛真题:穿越雷区
- 6.1 Python图像处理之图像编码技术和标准-DPCM编码
- react-native与phonegap入门-曾亮-专题视频课程
- 凯云水利水电工程造价系统 (五) 补充定额
- Ubuntu 22.04下载安装VMware Workstation Pro 17
- python|解决Cannot open D:\python\Anaconda\envs\tensorflow\Scripts\pip-script.py(重装pip)