- java.lang.object类
- 1.Object类是所有java类的根父类
- 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类
- 3.object类的属性和方法
- 属性 无
- 方法 equals() tostring() getclass() hashcode() clone() finalize() wait() notify() notifyAll()
- 4.objectl类只构造了一个空参的构造器
- 面试题
- final finally finalize的区别
- 两个关键字,一个方法名
- 对象在回收之前调用finalize方法,不要主动调用方法,
*/
引用 1.类 2.数组 3.接口
2.1equals()方法的使用 - 面试题 ==和equals()区别
- 一 回顾==的使用
- ==,运算符
- 1.可以使用在几倍呢的数据类型变量和引用数据类型变量中
- 2.如果比较的是基本数据类型变量,比较变量保存的数据是否相同(不一定类型相同)
- 如果比较的是引用数据类型变量,比较两个对象的地址值是否相同,及两个引用是否指向第一个对象实体
- == 符号使用时必须保证左右两边的变量类型一致
- equals()方法的使用;
- 1.是一个方法而非运算符
- 2.只能够适用于引用数据类型
- 3.object类中的定义
- public boolean equals(Object obj){
- return(this ==obj);
- }
- Object类中定义的equals()和==的作用是相同的,比较两个对象的地址是否相同,及两个引用是否指向同一个对象实体
- 4.像String,Date,File包装类等都重写了Object类中的equals()方法。重写以后比较的不是
- 两个引用的地址是否相同,而是比较两个对象的“0实体内容”是否相同
- 5.通常情况下我们自定义的类如果使用equal()的话,也通常是比较两个对象的“实体内容是否相同,那么就需要对Object类中的equals()进行重写
*/
手写举例
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Customer other = (Customer) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
toString()方法
toString()方法在Object类中定义,其返回值是String类型,返回类名和它 的引用地址。
在进行String与其它类型数据的连接操作时,自动调用toString()方法 Date now=new Date(); System.out.println(“now=”+now); 相当于 System.out.println(“now=”+now.toString());
可以根据需要在用户自定义类型中重写toString()方法 如String 类重写了toString()方法,返回字符串的值。
s1=“hello”;
System.out.println(s1);
//相当于System.out.println(s1.toString());
基本类型数据转换为String类型时,调用了对应包装类的toString()方法
int a=10; System.out.println(“a=”+a);