Java笔试——Java中的Object类详细介绍

在我求职面试的过程中,笔试题竟然考到Object类的一些知识,虽然简单,但是很久不去看,还是答不出具体的细节,如果面试官看到你这些地方没答出,就会认为你Java基础都不会,其实从业很久的老程序员都知道,这些做的笔试题,大部分实际开发工作中都没用到过,自然随着时间的推移就会忘记了,毕竟人的记忆是有限的!

所以Java开发的过程中也要不断总结笔试过程中考到的问题,记下来,等到后面面试的时候翻阅一下就可以上场面试!我在面试的过程中,好多面试官还引用我博客内经常说的话,此时我就想说“呵呵”!能不能不要随便在网上看来几篇文章,就来面试中试水,此时的我不说话,就让他在我面前尽情装波逼!

好了,回到正题:

理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类。由于所有的类都继承在Object类,因此省略了extends Object关键字。
该类中主要有以下方法: toString(),getClass(),equals(),clone(),finalize(), 其中toString(),getClass(),equals是其中最重要的方法。

注意:

Object类中的getClass(),notify(),notifyAll(),wait()等方法被定义为final类型,因此不能重写。

getClass()方法;
不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();  
toString()方法;
可重写;如果在实际使用中为特定对象提供一个特定的输出模式,当这个类型转换为字符串或字符串连接时,建自动调用重写的toString()方法。  


public ObjectInstance{ 
public String toString(){ 
 return "在"+getClass().getName()+"重写toString()方法"
} 
public static void main(String arg[]){ 
  System.out.println(new ObjectInstance()); 
} 
}

equals()方法;

class V { 
} 
public class OverWriteEquals{ 
  public static void main(String args[]){ 
    String s1="123"; 
    String s2="123"; 
    System.out.println(s1.equals(s2)); 
    V v1= new V(); 
    V v2= new V(); 
    System.out.println(v1.equals(v2)); 
  } 
}

输出结果:

run: 
true
false
BUILD SUCCESSFUL (total time: 0 seconds)
从本例可以看出,在自定义的类中使用equals()方法进行比较时,将返回false,因为equals方法的默认实现是"=="运算符,即比较两个对象的引用地址,而不是比较对象的内容。所以要想真正比较两个对象中的内容,需要在自定义类中重写equals()方法。

猜你喜欢

转载自blog.csdn.net/liliang_11676/article/details/79972636