这是一个程序员的自我修养,一个学术者的自我探索,一个大神的养成之道。
1
抽象类和接口的区别
答:
抽象类:
1)抽象方法,只有概念没有具体的行为,用abstract关键字装饰,没有方法体,子类必须重写这些方法。
2)包含抽象方法的类一定是抽象类
3)抽象类只能被继承,一个类只能继承一个抽象类
接口:
1)方法都是抽象方法,属性都是常量
2)不能实例化,可以定义常量
3)接口变量可以引用具体实现类的实例
4)接口只能被实现,一个具体类实现接口,要实现其全部抽象方法
5)接口之间可以多实现
6)一个具体类可以实现多个接口,从而实现多继承
2
列举线程同步的方法:
答:
1)wait()方法:让线程等待,将线程装到线程池中
2)notify()方法:唤醒等待的线程,唤醒线程池中的第一个,让被唤醒的线程处于临时阻塞状态
3)notifyAll()方法:唤醒全部等待线程,线程池中所有线程都被唤醒
3
equals()和==的区别,重写equals()方法是还要重写哪些方法,为什么?
答:
==比较的是地址和栈中的内容;
eqauls()比较的是值,堆中的值是否一样。
要重写hashcode()方法,因为比较的时候是比较的哈希值。