== 和 equals的区别

一 == 比较的是指向的地址(堆)是否相同,即比较的是两个对象是否是相同的一个对象
1、*引用数据类型:*两者比较的是指向的堆中的地址,比较的是被操作数是否为同一个对象。(真正意义上的指针操作)

2、基本数据类型:比较的是值,
如是具体的阿拉伯数字的比较,只要数值想等的结果就是true,如:
int a=13 与 long b=13L 与 double c=13.00与float d=13.0都是相同的(为true),a=b=c=d,任意两者比较都是true,其根本原因是因为他们都指向地址为13的堆。
**二 equals比较方法,该方法在没有复写前仍然是比较的堆中地址(等同于
),继承Object类,所以适合所有对象

  1. equals方法没重写时跟==方法没有区别
  2. equals方法重写的情况下,比较的是两者的内容
    这是本地重写的equals犯法,也可以看出不重写就是ee方法== 和 equals的区别
    可以看出==和equals的区别,需要注意的是string a=“aa”;可以直接在常量池新建对象,当再次新建相同对象是,会先搜索有没有“aa”对象,有的话直接引用,不在新建,这和new对象有本质区别(只要new就新创建对象);
    == 和 equals的区别