【Java】双等号和equals的区别

【string的valueof方法,对八种数据类型的自动拆箱装箱,integer-128-+127用==比较integer的值会相等,
因为储存了这个范围内的数据,可以直接进行比较,不在这个范围会new出一个integer,==比较的内容加地址,
equals比较的是地址(未重写之前),String integer data都重写了equals方法,https://www.jianshu.com/p/9cb9c61b0986
 所以比较的是内容(重写equals方法的时候操作的是得到value值,所以equals比较值,真实的equals比较的也不是这样)

  JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法。
  这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了。
  如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了】
 

你可能感兴趣的:(小东西)