java字符串:等于运算符与equals方法的区别

本文探讨了Java中字符串str1、str2、str3和str4的比较,通过equals()方法比较内容,==运算符对比地址,揭示了它们之间的区别,重点在于浅拷贝与深拷贝的体现。

==:地址是否相同

equals:内容是否相同

定义四个字符串,内容都是java

package java_proj;

public class StringDemo4 {
    public static void main(String[] args) {
        //==和equals方法的区别
        //定义四个字符串,内容都是java
        String str1 = "java";
        String str2 = "java";
        String str3 = new String("java");
        String str4 = new String("java");
        System.out.println("str1和str2的内容相同?"+(str1.equals(str2)));  //也可写:str2.equals(str1)
        System.out.println("str1和str3的内容相同?"+(str1.equals(str3)));  
        System.out.println("str3和str4的内容相同?"+(str3.equals(str4)));  

        System.out.println("str1和str2的地址相同?"+(str1 == str2));  
        System.out.println("str1和str3的地址相同?"+(str1 == str3)); 
        System.out.println("str3和str4的地址相同?"+(str3 == str4));  
    }
}

输出:

str1和str2的内容相同?true
str1和str3的内容相同?true
str3和str4的内容相同?true
str1和str2的地址相同?true
str1和str3的地址相同?false
str3和str4的地址相同?false

下图可以解释上方关于地址是否相同的结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值