先看一个LinkedList源码的remove(Object o)例子:
问题:为什么o=null时要单独用“==”判断,而不能用equals()?而且在根类Object中,equals()和“==”功能是一样的(是否为同一个对象)
解释:当用o.equals()时,一般只有对象可以调用方法(当然如果是静态方法,直接类名也可以),说明o是个对象,在调用equals()方法前会因为o=null直接抛空指针错.
问题:明明equals()方法和“==”功能一样,为什么当o=null时,“==”就可以而equals()不行
解释:不是说equals()方法不行,而是还没来得及进入equals()方法呢,就抛错了