字符串的创建辨析
  nIRn9Xk927Jl 2024年08月07日 35 0

字符串的创建辨析

String s="1"
*使用引号创建字符串会在常量池中寻找 有则直接返回 没有则创建

String s=new String("1");
*使用new创建 如果常量池没有"1" 则在常量池中创建"1" 再在堆中创建String并返回地址给引用
*使用s.intern()如果常量池中没有与字符串相同的字符串(判断逻辑 调用equals)则加入对象的引用(1.7及之后 常量池移入堆)
注:上述代码 调用s.inertn()之前 常量池中已存在"1"的对象 故相当于没有调用

String s=new String("1")+new String("1")
s.intern()
注:该例子中 使用StringBuilder创建字符串 常量池中不存在"11"的对象 故将s.引用加入常量池

参考博客链接 深入解析String#intern

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年08月07日 0

暂无评论

推荐阅读
  VGxawBTN4xmE   2天前   18   0   0 Java
  FHUfYd9S4EP5   4天前   28   0   0 Java
  u8s65Xl4dX8N   4小时前   9   0   0 Java
  qCe06rFCa8NK   4小时前   13   0   0 Java
  ZTo294hNoDcA   4天前   28   0   0 Java
  FHUfYd9S4EP5   4天前   23   0   0 Java