Java基础—String类_初始化的问题

这里写图片描述
这是官方的解释,两种简单的初始化确实是等效的,但严格意义上来讲不是完全等效,第一种是在常量池中给出不能改变的abc,哪怕后来再初始一个一样的,也不会改变内存,只会多一个引用,而第二种就不同了,直接new了一个新的空间,不会去检查有没有重复,因为实体与实体之间是划界的,各有各的地盘,来看一段简单的代码。

package string.demo;

public class stringdemo {
    public static void main(String args[]) {
        String s0="abc";
        String s1="abc";
        char arr[]= {'a','b','c'};
        String s2=new String(arr);
        String s3=new String("abc");
        String s4=new String("abc");
        System.out.println(s1==s0);
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s3==s4);
        System.out.println(s1.equals(s2));
    }
}

这里写图片描述
要注意一下,equals比较的是内容,==比较的是引用(地址);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值