栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java中String类型能够存放多大的数据量?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中String类型能够存放多大的数据量?

最近在编写博客系统时,在文章上传遇到了个问题:
  • 到底使用什么来接收文章呢?String类型能接收多大的数据量?
随后,我去网上找了一下,发现都是说String只能存放65535个字符
  • 啊这?真的是这样吗?我又亲自去编译器试了一遍,还真的是,这可咋整?
  • 为此,我去百度了一遍,也没找到啥好的方案,随后,我就想着只能使用流传输了。
  • 但是,流传输我也不会呀!!咋办?我就抱着尝试的心态,试了一下使用String来接收
  • 你猜咋地,居然成功接收了!!!为什么,居然成功了!!!
  • 我上传了七万多个文字,居然能够接收并保存到数据库。啊这?
经过不断的搜索,终于知道原因了 为什么会报错:这是因为jvm编译时允许的String类型最大长度为65535,当超出长度时就会编译失败。 为什么能接收成功?
  • 首先,我们要知道String是怎么存储字符串的,String类型其实就是一个char类型的数组,就是使用数组来存放字符。
  • 既然是数组,那么它也是有长度限制的,通过String的源码可以知道,String类型的长度就是一个int类型。
  • 通过int类型的封装类Integer可以看出,int类型的取值范围为 -231 ~ 231 -1
  • 所以理论上是可以存放231 -1个字符,也就是差不多231 - 1 = 2147483647 = 2G,真多。
  • 理论上是,但是编译时是通过JVM进行编译的,JVM是存在编译规范的,它对String类型做出了限制,所以,当String类型编译时,不能超过216 个字符。
  • 但是,JVM编译规范,跟我运行有什么关系呢?
  • 所以,运行时是不受编译规范影响的,运行时拼接或者赋值是根据String的定义范围来做的。
个人理解,如有不到位或错误的地方,欢迎纠正
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号