简谈Java语言中的"=="与equals方法应用的区别。

简谈Java语言中的"=="与equals方法应用的区别。

public class StringDemo03 {
    public static void main(String[] args) {
        //构造方法得到对象
        char[] chs = {'a', 'b', 'c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值得到对象
        String s3 = "abc";
        String s4 = "abc";

        //比较字符串对象地址是否相同
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s4);

1:我们知道"“运算符是关系运算符的一种。
其结果均为布尔常量的结果——true or false;
2:使用”
"作比较时,通常是两种情况:对于基本类型比较的则是数据值是否相同;对于引用类型比较的则是地址值是否相同。

由此,在此例中

		String s1 = new String(chs);
        String s2 = new String(chs);

由于定义了s1、s2两个不同的变量,所以开辟了地址值是不同的,故运行出来的结果是false

false

对于s3、s4则是直接赋值的两个相同内容是放在堆内存中的,并没有开发新的内存空间,所以地址是一样的,故运行出来的结果是true。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值