风车菊 2022-04-30 21:08 采纳率: 50%
浏览 34

Java字符串拼接问题

String s1 = "coder";     
String s2 = "coder";      
String s3 = "coder" + s2;  

**String s4 = "coder" + "coder";   
String s5 = s1 + s2; **

System.out.println(s3 == s4);  
System.out.println(s3 == s5);     
System.out.println(s4 == "codercoder");

按道理说 + 号底层使用了stringbuilfer 拼接字符串,最后tostring()创建了一个新的string对象,s4 s5 不都是应该指向堆内存吗,为啥指向了字符串对象了??

img

  • 写回答

2条回答 默认 最新

  • Bug 终结者 Java领域优质创作者 2022-04-30 21:45
    关注

    因为在常量池中有的话,会自动去常量池拿,而不会去新创建对象

    评论

报告相同问题?

问题事件

  • 创建了问题 4月30日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!