内容比较(String)拼接 "==" 判断,JVM粗解

本文探讨了Java中使用'=='比较String类型字符串的问题。'=='比较的是对象的地址值,而equals()在重写后按照重写规则比较。通过实例分析了有变量参与的字符串拼接在内存中的表现,强调了final修饰的字符串常量与运行时常量池的关系。文章还提到了String的intern()方法及其作用,指出它会检查字符串是否已在常量池中,若存在则返回引用,否则添加并返回引用。
摘要由CSDN通过智能技术生成

String 拼接之后==比较

  • 我们比较两个String 类型的字符串是否相等,首先需要了解 == 字符的含义

  • 这里我们直接记住结论:== 比较的是地址值,equals重写之前比较的是地址值,重写之后按照重写规则比较。

  • 来看一组比较:

  •  String str1 = "1";
     String str2 = "2";
     String str3 = new String("1");
     final String str4 = "2";
     final String str5 = new String("2");
     String str6 = "12";
    
     String str7 = "1" + "2";
     String str8 = str1 + "2";
     String str9 = str1 + str2;
     String str10 = str3 + str4;
     String str11 = "1" + str4;
     String str12 = "1" + str5;
     String str13 = (str1 + str2).intern();
    
     System.out.println("(1)"+ (str1 == str3));
     System.out.println("(2)"+ (str2 == str4));
     System.out.println("(3)"+ (str4 == str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值