看String的源码可以得知,String实际存储数据的是char value[],数组的长度是int类型,最大值为231-1= 2147483647

所以String最多存储231-1个字符(注意这里是字符,而不是字节)

但有的同学可能遇到过这样的报错:

明明String并没有超过231-1,那这是为什么呢?

关于String的长度限制,这里要分两种情况考虑:

当String为常量时

我们知道,String常量会放入字符串常量池,字符串常量池对字符串的长度做了限制

字符串在class格式文件中的存储格式为:

CONSTANT_Utf8_info {

u1 tag;

u2 length;

u1 bytes[length];

}

u2是无符号的16位整数,最大值为216-1=65535

the class file format spec中也有说明:

The length of field and method names, field and method descriptors, and other constant string values is limited to 65535 characters by the 16-bit unsigned length item of the CONSTANTUtf8info structure (§4.4.7). Note that the limit is on the number of bytes in the encoding and not on the number of encoded characters. UTF-8 encodes some characters using two or three bytes. Thus, strings incorporating multibyte characters are further constrained.

所以String在字符串常量池里的限制为65535个字节(注意这里是字节,而不是字符)

字符与字节的关系与编码有关,这里不讨论

当String为变量时

为变量时,则长度限制为231-1= 2147483647个字符。当然塞不塞得下得看你内存了(。・∀・)ノ

如果面试官问你String有没有长度限制时,你如果从这两方面答,稳得一匹,还能顺便引出JVM的东西,当场录取

mysql string长度限制_String的长度限制相关推荐

  1. java string 大小空间_String的长度和储存大小

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

  2. MySQL uuid()函数生成的UUID的长度问题

    MySQL uuid()函数生成的UUID的长度问题 错误重新 有一user表,表结构信息如下: 现在尝试执行以下SQL语句,向user表插入一条数据: INSERT INTO `user` VALU ...

  3. mysql数据库设置索引 以下_如何设置MySQL数据库表的索引总长度

    匿名用户 1级 2018-10-05 回答 MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定).在 My ...

  4. mysql int11 最大值_int(11)最大长度是多少,MySQL中varchar最大长度是多少(转)

    int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表 ...

  5. php数据库字段设置长度,javascript - 表单字符长度与数据库字段长度

    html的表单length长度是以字符个数计算的,不管是汉字还是字母,但是数据库又是按字节计算的,汉字占2个字母占1个,这样容易造成写入的时候长度超出的问题. 两个问题: 1.有没有好的方法,能够在前 ...

  6. 数据库varchar类型长度是指字符长度还是字节长度呢?

    MySql 5.X 以上的版本的定义中表示的字符长度,如上varchar(20)你既可以添加20个英文字符,也可以添加二十个中文字符. 4.X 的版本表示的是字节长度,会根据字符集转变内容字节长度存储 ...

  7. 数据库中varchar类型长度是指字符长度还是字节长度?两种定义方法

    Oracle中varchar2类型的字段长度单位默认是按照byte来定义, 比如常见写法varchar2(10)  代表只接收最大10字节长度 这种定义情况下10字节只能插入3个汉字,(数字字母只占一 ...

  8. android string拼接字符串_String对象的存储、拼接和比较

    一.String类型介绍 String类型是引用数据类型,表示字符串类型.String底层使用byte[]数组来存储char[]数组.(JDK1.9及以后的版本,JDK1.9之前是使用char数组保存 ...

  9. Java 基础算法 短板问题 : 你正在使用一堆木板建造跳水板。有两种类型的木板,其中长度较短的木板长度为shorter,长度较长的木板长度为longer, 你必须正好使用 k 块

    题目 你正在使用一堆木板建造跳水板. 有两种类型的木板,其中长度较短的木板长度为 shorter ,长度较长的木板长度为 longer . 你必须正好使用 k 块木板.编写一个方法,生成跳水板所有可能 ...

最新文章

  1. JSONP简单入门介绍
  2. 5道不一样的Python基础题练习题,很有难度
  3. js的异步请求出现同步效果
  4. linux服务器做页面,linux服务器搭建在线预览环境
  5. MySql 主从模式原理及操作步骤
  6. 纯css页面变灰度兼容ie、firefox、chrome、opera、safari
  7. Javascript基于对象三大特征
  8. 打开大数据研究的潘多拉魔盒
  9. A870省电内核超频内核介绍及下载[七夕]
  10. 文献管理软件Mendeley优缺点分析
  11. 遗传算法GA原理及实现(python实现GA求解TSP代码)
  12. matplotlib中cmap与color参数的设置
  13. vue实现仿猫眼电影
  14. java tea属于红茶吗_乌龙茶属于红茶吗?
  15. 王道考研 操作系统知识点汇总(目录+思维导图)
  16. 大学linux考试题,大学考试的LINUX试题参考答案(8)
  17. mybatis 大于小于号 lt和gt
  18. Python爬取《三国演义》并且制作词云
  19. 【UE4笔记】蓝图升降电梯
  20. Google Earth Engine APP——影像条带色差、色调不均匀等现象解决方案Landsat5 NDWI Image Restoration APP

热门文章

  1. 世界上最神奇的数字是: 142857
  2. 毛球修剪器方案开发的工作原理和构成
  3. 心脏支架手术后遗症 做完心脏支架手术留下后遗症
  4. 2021中国大数据产业发展白皮书 附下载
  5. 多目标优化算法:MOFPA、MOFA、MOCS、MOBA、MOHHO五种多目标优化算法性能对比(提供MATLAB源码)
  6. Vs2013未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包 解决方案
  7. 如何对GIF动图进行裁剪?GIF怎么裁剪大小?
  8. 一文详解泊车感知的摄像头需求
  9. 一道简单的Python面试题,却涵盖诸多考点,快来试试吧!
  10. Python 第三方模块 统计1 statsmodels模块1 简介,回归