Object类是Java中所有类的父类,所以Object下的方法同时也是所有类的共有方法,
即使是你自定义的一个类,也拥有Object的方法。
Object类下的常见方法
1.equals方法
a.equals(b);//其中a和b都要是一个对象而非一个基本数据类型或一个类。
含义:判断两个对象是否为同一个对象(内存地址是否相等,本质就是==),返回一个boolean值。
凡是new出来的不可能是同一个对象。
==和equals的区别
答案1:==如果作用于基本数据类型。就判断值是否相等。 答案2:==如果作用于引用数据类型,就判断地址是否相等 String str1 = new String("你好") ; String str2 = new String("你好") ; System.out.println( str1 == str2);//false System.out.println( 1 == 1);//true String str1 = "你好"; String str2 = "你好"; System.out.println( str1 == str2);true 意味着str1和str2的地址是一样的。 总结:String声明变量的区别: String str = new String("xx"); 不管xx是什么,都要重新开辟一个新的内存。 String str = xx ; 如果xx存在了就不去开辟了 而是直接引用已经存在的, 答案3:equals:只能作用于引用数据类型,本质就是== 答案3:但是大部分的类都重写了equasl方法,例如String ,Date 答案3:重写之后的equals则是判断值是否相等 String str1 = "你好"; String str2 = "你好"; System.out.println( str1.equals(str2) );//true 错误的解释:因为str1和str2都是直接声明的所有地址相等 String str1 = new String("你好") ; String str2 = "你好"; System.out.println( str1.equals(str2) );//true 原因:String 也重写了equals方法,是判断值是否相等 而非地址