1.toString();
返回的值为:所属的类名@类的地址(16进制)
1 public class ObjectTest 2 { 3 public static void main(String[] args) 4 { 5 Object object = new Object(); 6 7 System.out.println(object); 8 System.out.println(object.toString()); 9 10 String str = "aaa"; 11 12 System.out.println(str); 13 System.out.println(str.toString());//String 自动重写了toString()方法 14 15 Student student = new Student(); 16 17 System.out.println(student); 18 System.out.println(student.toString()); 19 20 } 21 } 22 23 class Student extends Object 24 { 25 public String toString() 26 { 27 return "Hello World"; 28 } 29 }
结果:
java.lang.Object@1db9742
java.lang.Object@1db9742
aaa
aaa
Hello World
Hello World
2.equals()
==:
对于原生数据类型来说,比较的是左右两边的值是否相等。
对于引用类型来说,比较左右两边的引用是否指向同一个对象,或者说左右两边的引用地址是否相同。
equals()方法,该方法定义在Object类当中,因此Java中的每个类都具有该方法,对于Object类的equals()方法来说,它是判断调用equals()方法的引用与传进来的引用是否一致,即这两个引用是否指向的是同一个对象。对于Object类的 equals()方法来、说,它等价于==。
public class ObjectTest2 { public static void main(String[] args) { Object object = new Object(); Object object2 = new Object(); System.out.println(object == object2); System.out.println("----------------"); String str = new String("aaa"); String str2 = new String("aaa"); System.out.println(str == str2); System.out.println("----------------"); String str3 = "bbb"; String str4 = "bbb"; System.out.println(str3 == str4); System.out.println("----------------"); String str5 = new String("ccc"); String str6 = "ccc"; System.out.println(str5 == str6); System.out.println("----------------"); String s = "hello"; String s1 = "hel"; String s2 = "lo"; System.out.println(s == s1 + s2); System.out.println("----------------"); System.out.println(s == "hel" + "lo"); } }
结果为:
false ---------------- false ---------------- true ---------------- false ---------------- false ---------------- true
原文:http://www.cnblogs.com/daneres/p/4444115.html