2017-2020 挑选出来最具代表性的(Java,网络相关 (1),面试真题解析
7.什么情况下 Java 会产生死锁,如何定位、修复,手写死锁
8.sleep 和 wait 的区别
9.join 的用法
10.volatile 和 synchronize 的区别
11.Java 中的线程池
12.线程通信
13.Java 中的并发集合
14.Java 中生产者与消费者模式
15.final、finally、finalize 区别
16.Java 中单例模式
17.Java 中引用类型的区别,具体的使用场景
18.Exception 和 Error 的区别
19.volatile
网络相关面试题
1.http 状态码
2.http 与 https 的区别?https 是如何工作的?
3.TCP 三次握手流程
Android 面试题
1.进程间通信的方式有哪几种
AIDL 、广播、文件、socket、管道
2.广播静态注册和动态注册的区别
动态注册广播不是常驻型广播,也就是说广播跟随 Activity 的生命周期。注意在 Activity 结束前,移除广播接收器。 静态注册是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
当广播为有序广播时:优先级高的先接收(不分静态和动态)。同优先级的广播接收器,动态优先于静态
同优先级的同类广播接收器,静态:先扫描的优先于后扫描的,动态:先注册的优先于后注册的。
当广播为默认广播时:无视优先级,动态广播接收器优先于静态广播接收器。同优先级的同类广播接收器,静态:先扫描的优先于后扫描的,动态:先注册的优先于后册的。
3.Android 性能优化工具使用(这个问题建议配合 Android 中的性能优化)
Android 中常用的性能优化工具包括这些:Android Studio 自带的 Android Profiler、LeakCanary、BlockCanary
Android 自带的 Android Profiler 其实就很好用,Android Profiler 可以检测三个方面的性能问题:CPU、MEMORY、NETWORK。
LeakCanary 是一个第三方的检测内存泄漏的库,我们的项目集成之后 LeakCanary 会自动检测应用运行期间的内存泄漏,并将之输出给我们。
BlockCanary 也是一个第三方检测 UI 卡顿的库,项目集成后 Block 也会自动检测应用运行期间的 UI 卡顿,并将之输出给我们。
4.Android 中的类加载器
PathClassLoader,只能加载系统中已经安装过的 apk
DexClassLoader,可以加载 jar/apk/dex,可以从 SD 卡中加载未安装的 apk
5.Android 中的动画有哪几类,它们的特点和区别是什么
6.Handler 机制
7.Android 性能优化
8.Android 内存优化*
9.Binder 机制
10.LruCache 的原理
11.DiskLruCache 原理
12.设计一个图片的异步加载框架
13.Android 中的事件分发机制
14.View 的绘制流程
15.Android 源码中常见的设计模式以及自己在开发中常用的设计模式
16.Android 与 js 是如何交互的
17.热修复原理
18.Activity 启动过程
19.SparseArray 原理
20.图片加载如何避免 OOM
21.大图加载
Android 三方库的源码分析
1.OkHttp
2.Retrofit
3.RxJava
4.Glide
评论