JavaSE面试常问(1)

来源:互联网 发布:铁幕演说知乎 编辑:程序博客网 时间:2024/06/07 07:09

1.== 和 equals有什么区别?
    (1)==既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址。
    (2)Equals的话,它是属于java.lang.Object类里面的方法,它只能比较引用数据类型。
如果该方法没有被重写过默认也是==(在jdk1.7中 源码103行);我们可以看到String类的equals方法是被重写过的,而且String类在日常开发中用的比较多,久而久之,形成了equals是比较值的错误观点。
    (3)具体要看这有没有重写Object的hashCode方法和equals方法来判断。

2.Override 和 Overload 的区别?
    (1)方法的重写(Override ):当父类中方法对于子类来说不适用的情况下,子类可以对父类中方法进行重写。
      前提:使用在子类中。
      ①方法名和参数列表必须相同;
      ②返回值类型可以不同,但是有规则。(子类重写方法的返回值类型是父类被重写方法返回值类型的"子类");
      ③子类重写方法的访问控制修饰符不能小于父类被重写方法的访问控制修饰符;
      ④子类抛出的异常不能大于父类。
    (2)方法重载(Overload)。
     前提:在同一个类中。
     ①方法名称必须相同;
     ②参数列表必须不同(参数的个数 或 参数的类型不同,与与返回值类型无关)。


 

       

 

1 0
原创粉丝点击