2020最新java+Android面试题技术点整理(附答案)

1、什么是面向对象(OOP)?

面向过程是具体化的,流程化的,解决一个问题,你需要一步一步的分析,一步一步的实现。

面向对象是模型化的,你只需抽象出一个类,这是一个封闭的盒子,在这里你拥有数据也拥有解决问题的方法。需要什么功能直接使用就可以了,不必去一步一步的实现,至于这个功能是如何实现的,管我们什么事?我们会用就可以了。

面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们我们使用的就是面向对象了。

2、什么是多态?实现多态的机制是什么?

  • 接口的多种不同的实现方式即为多态。
  • 多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术。

多态又分为 编译时多态和运行时多态。

编译时多态:比如重载

运行时多态:比如重写

3.父类的静态方法能否被子类重写?

不能、重写从定义来看,是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型来决定。

4.java中equals和==的区别

对于hashcode()方法,HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定对象的存储地址的。

两个对象的hashcode相同,对象不一定是一个对象。

两个对象的hashcode不同,那么一定不是同一个hash对象。

如果两个对象的equals相同,那么hashcode一定相同。

 

5.Handler机制的原理与RXJava有什么区别

相同点:都是为了线程间通信。

区别:

1.RxJava线程切换更方便(直接可以切换子线程和UI线程),Handler需要在子线程去发送消息,在主线程去接受消息然后才能改变UI。

2.RxJava是观察者模式,Handler是消

你可能感兴趣的:(Android基础知识)