equals与==的区别:
1、==指引用是否相同,是判断两个变量或实例是不是指向同一个内存空间,是对内存地址进行比较 。 equals()指的是值是否相同,是判断两个变量或实例所指向的内存空间的值是不是相同,是对字符串的内容进行比较。
2、==是操作符,equals()是超类Object中的方法。
3、==运行速度比equals()快,因为它只是比较引用。
//==比较引用
String a = "hello";
String b = "hello";
System.out.println("使用==比较引用1:"+(a==b));
System.out.println("a==b返回true,因为java中字符串的值是不可改变的,相同字符串在内存中只会存一份,所以a,b指向同一对象。");
String c = new String("hello");
System.out.println("使用==比较引用2:"+(a==c));
System.out.println("a==c返回false,因为此时a,c指向不同对象。");
//equals比较值
System.out.println("使用equals比较值1:"+a.equals(b));
System.out.println("使用equals比较值2:"+a.equals(c));
System.out.println("使用equals方法比较的是字符串的内容是否相等。");