1、栈 Stack 2、队列 Queue 3、链表 Linked List 4、数组 Array 5、哈希表 Hash Table 6、二叉树 Binary Tree 7、堆 Heap 8、并查集 Union Find 9、字典树 Trie
1、二分搜索 Binary Search 2、分治 Divide Conquer 3、宽度优先搜索 Breadth First Search 4、深度优先搜索 Depth First Search 5、回溯法 Backtracking 6、双指针 Two Pointers 7、动态规划 Dynamic Programming 8、扫描线 Scan-line algorithm 9、快排 Quick Sort
1、简述TCP/IP体系? 2、TCP与UDP区别与应用? 3、GET,POST区别(计算机底层实现的区别)? 4、Https 理论基础及Https在Android中的应用(HTTPS 理论基础及其在 Android 中的最佳实践 , 浅谈https\ssl\数字证书)
1、单一职责原则 2、开闭原则 3、里氏替换原则 4、依赖倒置原则 5、接口隔离原则 6、迪米特原则
1、单例模式 2、Builder模式 3、原型模式 4、工厂方法模式 5、抽象工厂模式 6、策略模式 7、状态模式 8、责任链模式 9、解释器模式 10、命令模式 11、观察者模式 12、备忘录模式 13、迭代器模式 14、模板方法模式 15、访问者模式 16、中介者模式 17、代理模式 18、组合模式 19、适配器模式 20、装饰漆器模式 21、享元模式 22、外观模式 23、桥接模式 24、MVC、MVP、MVVM 模式
1、String、StringBuffer、StringBuilder 的区别?String为什么是不可变的? 2、ArrayList、LinkedList的原理和区别? 3、HashTable、HashMap、TreeMap原理和区别? 5、常见编码方式?utf-8编码中的中文占几个字节?int型几个字节? 6、JVM(Java虚拟机) 7、ThreadLocal 原理 8、synchronize和volatile (Java并发编程:volatile关键字解析) 9、线程及线程池
1、Android系统启动流程 ? 2、Jvm、Art 和 Dalvik对比? 3、点击 Android Studio 的 build 按钮后发生了什么? 4、Android应用安装到手机上时发生了什么? 5、Android应用启动流程? 6、Android进程和 Application 的生命周期及保活方案? 7、Android的 Inter-Process-Communication (IPC)跨进程通信? 8、Binder 机制? 9、Handler 机制? 10、Activity、Service、Fragment的生命周期和启动模式? 11、SP是进程同步的吗?有什么方法做到同步; 12、SpareArray原理?
1、组件化 2、插件化 3、热修复 4、换肤原理
1、View工作原理? 2、View的事件体系? 3、SurfaceView和TextureView的区别?
1、Bitmap的加载原理? 2、Android中的缓存策略? 2、LruCache 底层原理?
1、内存回收机制与GC算法(各种算法的优缺点以及应用场景); 2、内存泄露场景及避免和解决方法 3、Android性能优化 4、Android网络优化
1、Glide源码解析 2、Okhttp源码解析