面试题划分:
[Java面试题]
- [java基础知识]
- [java常见算法]
- [java多线程相关]
- [java集合类相关]
- [设计模式]
- [面向对象六大原则]
- [单一职责原则]:一个类应该仅有一个引起它变化的原因。
- [开放关闭原则]:一个类应该对外扩展开放,对修改关闭。
- [里氏替换原则]:一个子类型能够替换掉它们的父类型。
- [依赖倒置原则]:依赖于抽象,不要依赖于具体类:1.高层模块不应该依赖底层模块,二者都应该依赖于抽象。2.抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
- [接口隔离原则]:不应该强迫客户依赖于他们不用的方法。
- [最少知识原则]:只和亲近的人谈话。
- 单例模式
- Builder模式
- 原型模式
- 简单工厂
- 工厂方法模式
- 抽象工厂模式
- 策略模式
- 状态模式
- 责任链模式
- 解释器模式
- 命令模式
- 观察者模式
- 备忘录模式
- 迭代器模式
- 模板方法模式
- 访问者模式
- 中介者模式
- 代理模式
- 组合模式
- 适配器模式
- 装饰模式
- 享元模式
- 外观模式
- 桥接模式
- [面向对象六大原则]
- [java之jvm]
- java之String源码分析
[Android面试题]
- [Android基础知识]
- 谈谈MVC、MVP和MVVM的优缺点
- Serializable和Parcelable的优缺点
- android 获取assets目录下文件的路径
- onNewIntent()调用时机?singleTop和singleTask的区别以及应用场景
- Apk打包流程(点击 Android Studio 的 build 按钮后发生了什么 )
- Apk安装过程
- 屏幕反转Activity的生命周期变化
- Picasso与Glide的区别(缓存的差异性)
- Android APK为什么不可以在IOS上运行,如何设计可以让其运行?
- Android系统设计为什么要用虚拟机不直接执行机器码?
- 通过虚拟机运行和直接执行机器码的差异性其各自的优势在哪里?
- Dalvik和ART的区别
- Native生命周期如何通知到Web?
- SurfaceView和TextureView的区别
- Surface为什么要用双缓冲机制?
- Bitmap大图加载的优化策略?
- SharePreference的commit和apply的区别
- [Android各个版本的特性]
- Android自定义View
- Android之动画
- Android的事件分发机制
- Android之Activity
- Android之Fragment
- Android之Service
- App的启动流程
- Android之适配
- [Android之Handler详解]
- Android Handler消息机制原理最全解读
- Handler进阶之sendMessage原理探索
- Handler同步屏障,IdleHandler
- Looper可以在子线程创建吗?
- Handler如何实现对于消息的定时发送
- HandlerThread的实现原理
- [Android之数据库]
- [源码解析]
- [Android之优化]
- Android三方优秀开源库
- [Android保活]
- [Android之ANR问题]
- [Android之热修复]
[Ios面试题]
[Php面试题]
[Kotlin面试题]
[Python面试题]