Java中equals与==的使用

平时开发代码中做比较的地方,有些时候equals()方法和==用的不太恰当,所以今天抽空研究了一下

首先上测试图

①直接定义String类型变量a,b,都赋值为a

②直接定义String类型对象c,d,都赋值为a

比较二者之前是否相等,一开始觉得图中②应该为false,但是执行后发现竟然为true,原因如下图:

 

结论:

①判断值是否相等用equals()(除基本数据类型:byte,short,int,long,double,float,char,boolean)

②判断是否为同一对象(内存地址相同)用 ==

 

今日收获:

①String是以字节数组的形式进行存储(char[]);

②String的equals()方法不同于Object的equals()方法,这也是String特有的,String的equals()会先对比内存地址是否相同,若相同直接返回,若不相同,则会继续对比字节数组里的每个字符是否相等,返回最终结果;Object的equals()方法只会对比内存地址是否相同;

③记忆性的东西

 

注明:文章中的表述如有问题,欢迎大家指教!

文章中文字图片引自博客:https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值