android和equals区别,你好,关于"equals"和"=="的区别?小白求解!

public class ckeef

{ public static void main(String args[])

{

String s1,s2,s3,s4; // 定义4个引用,但未指向任何对象。

s1=new String("we are students"); //将引用s1指向新生成的string对象

s2="We are students";

/*将“We are students”字符串常量引入常量池,

并使得s2指向它。

*/

s3="We are students";

/*根据常量池存储机制,发现常量时,先搜索常量池,在该常量存在的情况下, 不会新建立一个常量来储存它,所以,s2和s3指向同一个常量“we are students”。*/

s4=new String(s1); //新建一个String使用s1内容构造,并用s4指向它。

System.out.println(s1.equals(s2));

System.out.println(s3==s2);//s2和s3为什么是对的??

/* S3和S2指向同一个常量,当然s3==s2,==运算符就是比较2个引用是否指向同一个 对象

*/

System.out.println(s1.equals(s4));

System.out.println(s1==s4);//s1和s4的引用不是一样的么?为什么输出的是false??

/*

只要new了一次,就会产生一个新的对象,所以s1和s4都产生了一个新的对象

并不是指向同一个对象的引用,而他们的string对象中的值是“we are students”常量,

String.equals()方法,会比较这个是否相等,但==是比较他们是否指向同一个

对象。

*/

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值