大厂面试题记一波

基础题

网络相关

  • Https的原理?

  • Tcp和Udp的区别?

  • Http的报文结构?cookie是用来干嘛的?有哪些响应码,分别都代表什么意思?

  • 有自己实现过Socket协议吗?

多线程

  • Sleep()和wait()的区别?

  • Java有哪些线程池?他们的区别是什么?线程池工作流程是怎样的?线程池实现原理是怎样的?Cache线程池有哪些弊端?

  • 多线程间的通信方式?

  • synchronize关键字怎么用的?还知道哪些同步的方式?

  • Thread直接调用run方法会怎么样?start方法作用是什么?

  • volatile关键字的作用是什么?

  • 怎么安全停止一个线程任务?原理是什么?线程池里有类似机制吗?

数据结构

  • HashMap和HashTable的区别?和 ConcurrentHashMap 区别?和LinkedHashMap区别?内部实现原理?

  • LRUCache的原理?

  • ArrayList和LinkedList区别?为什么ArrayList不是线程安全的?

  • 数据库的索引用的什么数据结构?

虚拟机

  • 垃圾回收机制?有哪些对象可以作为GC roots?

  • 跟Art、Dalvik对比

  • Java内存模型?

  • 类加载机制?双亲委托模型?

其它

  • 用过哪些设计模式?DCL单例模式为什么要两次判空?Android里源码或者你用过的开源库都用到了什么设计模式?
    — final关键字的作用?

  • 静态内部类和内部类的区别?

  • 值传递类问题

  • Kotlin为什么能和Java混编

Android题

  • 你有什么亮点?项目中遇到过什么难题或者坑,怎么解决的?

  • 做过哪些性能优化?是怎么评测和具体优化的?

  • Activity的冷启动流程?AMS的作用?

  • 怎么分析内存泄漏?

  • View的事件分发机制?滑动冲突怎么解决?

  • 自定义View的原理和流程?

  • Handler原理?(一般会花式扩展)

  • 有哪些多进程通信方式?Binder机制?

  • Android的生命周期和启动模式相关?

  • 你项目中用到哪些开源库?说说其实现原理?(OKhttp、RxJava、Retroit重点,如果有用到的话)

  • Android的打包流程?apk里有哪些东西?签名算法的原理?

  • 了解哪些插件化技术?

  • LinearLayout的布局流程?

  • 对Mvp的理解?

  • Android怎么做保活?

算法

  • 排序相关的(快排,分析不同排序区别,时间复杂度等)

  • 字符串、数组相关的(滑动窗口、双指针)

  • 链表(反转链表)

  • 递归、斐波那契数列(爬楼梯)

  • 动态规划

你可能感兴趣的:(记录常识-笑哭)