String 有长度限制吗?

janlacncn 2004-04-15 07:50:39
我在往数据库存数据的时候,只要大于18K就报错~
我检测数据库字段没有问题,服务器没有限制。
现在我想问题可能就是出在String身上?

请问如果有限制,应该在那里改过来呢?
...全文
929 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
graygu 2004-04-18
  • 打赏
  • 举报
回复
string本身没有长度限制.
应该是数据库的问题.
cxb1004 2004-04-18
  • 打赏
  • 举报
回复
String怎么会有限制呢?当然时没有了,你应该吧报错信息贴出来,这样我们才能来帮你分析啊
danceflash 2004-04-18
  • 打赏
  • 举报
回复
String长度肯定有限制
不过18K好像不应该
ghostvalley 2004-04-18
  • 打赏
  • 举报
回复
有限制,因为String用的是字符数组,所以限制为数组长度2^31(2GB)
niuji 2004-04-18
  • 打赏
  • 举报
回复
我记得String是用数组存放字符的,应该有限制
jkit 2004-04-18
  • 打赏
  • 举报
回复
String的长度肯定是没有限制的。
为了测试这点,我编了个程序从文本文件读取所有内容到StringBuffer里面去(readLine方式),然后再把这个StringBuffer转化成String类型,然后再把这个String输出到屏幕。
测试过程如下:
文件大小1M的时候,一切正常!
文件大小32M的时候,出现OutOfMemoryError,于是我加参数-Xmx256M,于是又一切正常了。
文件大小128M的时候,又出现OutOfMemoryError,于是我改加参数-Xmx512M,又正常了。
对于更大的情况,由于我机器内存有限,不好继续测试了。但是我觉得也没有必要继续下去了。Java语言本身并没有限制String的长度,就算出错了也是内存不够引起的,与String没有关系,这时候你使用什么都会出现内存不够的错误。只要内存足够大,String多大长度都是没问题的。
janlacncn 2004-04-17
  • 打赏
  • 举报
回复
没有限制!

有没有人遇到过这样的问题?
caiyi0903 2004-04-15
  • 打赏
  • 举报
回复
我估计是你数据库的字段做了限制。
janlacncn 2004-04-15
  • 打赏
  • 举报
回复
我用是MYSQL里的MEDIUMTEXT
报max_allowed_packet大小问题
然后我把max_allowed_packet改大也没有什么作用。
pleonheart 2004-04-15
  • 打赏
  • 举报
回复
我觉得问题出在你的数据库字段定义上,用类似blob的类型吧
jkit 2004-04-15
  • 打赏
  • 举报
回复
首先你应该看看报什么错!
其次,我觉得是超过数据库的字段长度的可能性比较大。
在数据库里面的(使用有些编码,比如utf-8)一个汉字占3个字节,那么18k字符串在数据库就需要27k!
jamcat 2004-04-15
  • 打赏
  • 举报
回复
嘿嘿,不知用StringBuffer可否解决?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧