android equals == 区别,"equals"和"=="的区别

String str1 = "android";

String str2 = "android";              // T

String str3 = new String("android");  // F

String str4 = "and" + "riod";         // T

String str5 = "and";                  // F

str5 = str5 + "riod";

关键在于。。。你要理解s1=new String("we are students");

s2="We are students";

这两个是不一样的。。。。new是用新建一个对象的方法。。。。而后一种是放在常量池中的。。。你一下次再用这种方法去创建的时候。。。就会去常量池里面找,所以

s2="We are students";

s3="We are students";

这两个是相同的。。。指向常量池中的"We are students";。。。

而s1=new String("we are students");

=new String(s1);

这两个是不同的对象。。。。。尽管他们的内容是一样的。。。

就像有两个人。。。他们的名字是相同的。。。。但是并不是一样的人。。。。

堆栈:首先我们要明确堆和栈的概念,在系统内存中将局部变量存放在栈中,将new出来的对象以及一些方法(类的代码信息,static变量以及常量池)放在堆中。

现在就说一下==和equals的比较的实质:==比较的是变量的地址而equals比较的是变量的内容,那么根据上面所说的可以得到==比较的是变量存储在栈中的内容,equals比较的是变量存储在堆中的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值