两者都可以用于对象的比较。"=="用于比较两个对象的内存地址值(引用值)是否相等,equals()方法用于比较两个对象的内容是否一致。

String str1 = new String("java");

String str2 = new String("java");

String str3 = str2;

str1和str2的内容完全一样,但是它两在堆内存中处于不同的内存位置,内存地址不同,所以str1==str2是FALSE!str1.equals(str2)是TRUE!

然而还需要注意的是,若对象类型的类为Object类或者Object类的子类,那么则需要覆写Object类中的equals方法才能准确的对两个对象内容进行比较,不然比较的是两个对象的地址比较。

//没有覆写equals()方法
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
} class Object {
public static void main(String[] args) {
Person p1 = new Person("张三",12);
Person p2 = new Person("张三",12);
System.out.println(p1.equals(p2)?"是同一个人":"是两个人");
}
}

程序运行结果为:是两个人。此时equals()就相当于"=="

最新文章

  1. ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox
  2. 【学习笔记】JAva编程思想之多态
  3. arcgis engine 监听element的添加、更新和删除事件(使用IGraphicsContainerEvents)
  4. AOP基础—代理模式
  5. atom编辑markdown之上传图片
  6. struts2视频学习笔记 01-02
  7. linux 下安装jdk及配置jdk环境图解
  8. [置顶] github 出现 Permission denied (publickey)的解决
  9. All about Performing User-Managed Database Recovery
  10. JS中的单引号和双引号
  11. 基于.net的分布式系统限流组件(限流算法:令牌算法和漏斗算法)
  12. 在CentOs7上部署Gunicorn
  13. SWT 几个sample网站
  14. getservbyname和getservbyport
  15. 万网域名查询API接口
  16. js css等静态文件版本控制,一处配置多处更新.net版【原创】
  17. 企业案例(一):由于mysql sleep线程过多小故障
  18. Dictionary<string, object>
  19. fdisk用法(转载)
  20. 对象的当前状态使该操作无效 说明: 执行当前 Web 请求期间,出现未处理的异常。

热门文章

  1. 洛谷P3094 [USACO13DEC]假期计划Vacation Planning
  2. POJ 1661 Help Jimmy【DP】
  3. MySQLWorkbench里的稀奇事之timestamp的非空默认值
  4. http://www.16aspx.com/Code/Show/5352
  5. 静态网页怎样实现动态交互?-JavaScript
  6. hdoj 1203 I NEED A OFFER! 【另类01背包】【概率背包】
  7. mtk刷机错误汇总
  8. ZOJ 3632 Watermelon Full of Water (线段树 区间更新 + dp)
  9. REST技术第四步 多个參数注解问题
  10. iOS + Nodejs SSL/Https双向认证