专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
目录
相关文章推荐
今天看啥  ›  专栏  ›  Java知音

面试官问我 String 能存储多少个字符?

Java知音  · 公众号  ·  · 2025-02-05 09:59
    

文章预览

1.首先String的length方法返回是int。所以理论上长度一定不会超过int的最大值。 2.编译器源码如下,限制了字符串长度大于等于65535就会编译不通过 private   void   checkStringConstant (DiagnosticPosition var1, Object var2)   {      if  ( this .nerrs ==  0   & &  var2 !=  null   & &  var2  instanceof  String  & &    ((String)var2).length() >=  65535 ) {          this .log.error(var1,  "limit.string" ,  new  Object[ 0 ]);         ++ this .nerrs;     } } Java中的字符常量都是使用UTF8编码的,UTF8编码使用1~4个字节来表示具体的Unicode字符。所以有的字符占用一个字节,而我们平时所用的大部分中文都需要3个字节来存储。 //65534个字母,编译通过 String s1 =  "dd..d" ; //21845个中文”自“,编译通过 String s2 =  "自自...自" ; //一个英文字母d加上21845个中文”自“,编译失败 String s3 =  "d自自...自" ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览