Android、Java面试题整理

先记下大体题目,持续补充。设计模式

1、Android

1. Activity lifecycle

onCreate() 建立活动,作一些数据初始化操做浏览器

onStart() 由不可见变为可见性能优化

onResume() 能够与用户进行交互,位于栈顶网络

onPause() 暂停,启动或恢复另外一个活动时调用app

onStop() 中止,变为不可见布局

onDestroy() 销毁性能

onRestart() 由中止状态变为运行状态优化

2. Activity的启动方式

①.standard模式spa

a.Activity的默认启动模式线程

b.每启动一个Activity就会在栈顶建立一个新的实例。例如:闹钟程序

缺点:当Activity已经位于栈顶时,而再次启动Activity时还须要在建立一个新的实例,不能直接复用。

②.singleTop模式

特色:该模式会判断要启动的Activity实例是否位于栈顶,若是位于栈顶直接复用,不然建立新的实例。 例如:浏览器的书签

缺点:若是Activity并未处于栈顶位置,则可能还会建立多个实例。

③.singleTask模式

特色:使Activity在整个应用程序中只有一个实例。每次启动Activity时系统首先检查栈中是否存在当前Activity实例,若是存在

则直接复用,并把当前Activity之上全部实例所有出栈。例如:浏览器主界面

④.singleInstance模式

特色:该模式的Activity会启动一个新的任务栈来管理Activity实例,而且该势力在整个系统中只有一个。不管从那个任务栈中启动该Activity,都会是该Activity所在的任务栈转移到前台,从而使Activity显示。主要做用是为了在不一样程序中共享一个Activity

3. Serializable和Parcelable区别

Serializable Parcelable
原理 将对象进行序列化,将一个对象转换成可存储或可传输的状态。能够在网络上进行传输,也能够存储到本地。 将一个完整的对象进行分解,分解后的每一部分都是Intent所支持的数据类型。
存储媒介 使用IO读写存储在硬盘上 直接在内存中读写,很明显内存的读写速度一般大于IO读写
实现 使用反射,序列化和反序列化过程须要大量 I/O 操做 本身实现封送和解封(marshalled &unmarshalled)操做不须要用反射,数据也存放在 Native 内存中,效率要快不少。
性能 使用了反射,序列化的过程较慢,并会产生大量的临时变量,从而引发频繁的GC。 更优

4. View 事件传递

Activity调用dispathTouchEvent()方法,把事件传递给Window;

Window再将事件交给DecorView(DecorView是View的根布局);

DecorView再传递给ViewGroup;

Activity ——> Window ——> DecorView ——> ViewGroup——> View

事件分发的主要有三个关键方法

dispatchTouchEvent() 分发

onInterceptTouchEvent() 拦截 ,只有ViewGroup独有此方法

onTouchEvent() 处理触摸事件

5. HashMap原理

6. onCreateMenuOption 在Activity哪一个生命周期被调用到?

onResume
复制代码

7. Jetpack 使用

8. Okhttp和Retrofit

拦截器使用什么设计模式?
复制代码

9. 内存优化

  • 第一点: 若是只是想避免OutOfMemory异常的发生,则能够使用软引用。 若是对于应用的性能更在乎,想尽快回收一些占用内存比较大的对象,则能够使用弱引用。

  • 第二点: 能够根据对象是否常常使用来判断选择软引用仍是弱引用。 若是该对象可能会常常使用的,就尽可能用软引用。 若是该对象不被使用的可能性更大些,就能够用弱引用。

10. 四种引用方式使用和区别

11. 线程池怎样复用?

12. ANR的缘由

13. 如何统计页面桢率,app流畅?

https://www.jianshu.com/p/d126640eccb1
复制代码

14. Android虚拟机 Dalvik和ART区别

ART虚拟机是在Android5.0才开始使用的
复制代码

15. 5.0之前,7.0,8.0的系统,安装app的速度比较

16. app性能优化

https://www.jianshu.com/p/b3b09fa29f65
复制代码

2、Java

1. Java反射机制

2. Java泛型

3、设计模式

1. 单例

参考

相关文章
相关标签/搜索