=:是比较两个字符串引用的地址是否相同,即是否指向同一个对象 equals方法:则比较字符串的内容是否相同。 例如String a = "abc"; String b = "abc"; a == b返回true,a.equals(b)同样返回true,这是为什么呢? 原来程序在运行时有一个字符串池,创建字符串时会先查找池中是否有相应的字符串,如果已经存在的话只
equals与==的区别: equals用于检测两个对象的内容是否相等(即对中的内容是否相同) ==在用于比较基本数据类型时,两者值相同,比较结果为true 在用于比较引用时,若引用指向内存中的同一对象,比较结果为true(==比较的是栈中的内容是否相同) 为了更清楚的了解它们的工作过程,先来看看equals的源码: public boolean equals(Object anO
一切类都是Object的子类,Object有equals方法,因此所有对象都有equals方法。 此方法可以按程序自己的规则判断两个对象是否相等,比如以下代码: String a = new String("hi");String b = new String("hi");System.out.println(a==b); //打印falseSystem.out.println(a
两种比较方法 == 基本类型 对于基本类型,== 的功能是比较值。Object 比较对象在内存中的地址。equals 基本类型无equals方法。Object对象默认equals的实现如下: /*** ...* @param obj the reference object with which to compare.* @return {@code true} if this obj
一、Integer与int ①代码 @Testpublic void testInteger() {int i = 129;int j = 129;Integer m = 128;Integer n = 128;Integer x = -128;Integer y = -128;int g = 128;System.out.println("测试Integer与int之间使用'=='和
认识equals(): Object类中的equals; public boolean equals(Object obj) {return (this == obj);} 当我们没有重写equals(),我们是调用父类object中的方法,比较的是对象的内存地址 重写equals后, public class Student {private int age;private