面试经验帖

面经

   创个帖子,总结下最近面试的公司的一些面试题,希望能对现在正在找工作的朋友有帮助,会不断更新。

常见问题:

java:

  1. java面对对象思想
  2. java类加载机制:加载过程,类加载器等
  3. java内存模型,堆,栈,方法区等的用途
  4. java垃圾回收机制,回收算法以及引用算法
  5. java多线程,多线程方式等
  6. 线程池,参数的意义,有几种线程池
  7. 同步中volatile, synchronized, lock的作用以及区别
  8. 同步的方式有哪些?同步包的使用
  9. java中信号量的使用
  10. 线程的运行状态,在代码中如何进行把控?
  11. ArrayList,Vector,LinkedList,Hashmap, Hashtable,Treeset,Treemap,Blockingqueue等集合的实现原理以及它的衍生物。
  12. 平常使用的数据结构模型有哪些,各有什么用处,不同点。
  13. java内存泄漏以及解决方式
  14. final,static的作用以及原理
  15. Java内部类与外包类的关系,非静态的与静态的区别
  16. java中的异常分类,处理方式
  17. 链表反转,二叉树求高度
  18. 排序的方式,解释思路
  19. 接口与抽象的区别
  20. 死锁的原因,怎么避免
  21. java中的类,所有类加载器都没加载,是被什么所加载

Android:

  1. handler机制,handler, looper, messengequeue, messenge, threadloacl的关系,最好能从源码的角度去分析。
  2. Android中多线程的使用方式,区别
  3. Android性能优化,内存、冷热启动、卡顿、过度绘制、Apk瘦身等问题工具的使用,举些例子
  4. Android 四大组件的使用、生命周期,原理等
  5. Activity的启动模式,区别
  6. Activity栈的结构
  7. Activity的启动流程
  8. Android事件分发机制,三个方法,还有一些细节要注意
  9. ListView嵌套问题,滑动冲突,item显示问题,如何处理
  10. viewpager 嵌套Listview的滑动冲突解决
  11. 自定义view的实现方式
  12. 动画的实现有几种,区别在哪,高级的动画怎么实现
  13. 动画的性能优化
  14. Activity跳转时的生命周期调用
  15. Service的启动方式,区别
  16. IntentService与Service的区别,会继续问些细节如HandlerThread
  17. Aidl的原理以及使用
  18. Android跨进程通信的方式
  19. Android Binder的用法,架构,实现原理等
  20. Android中使用到的设计模式
  21. Android类加载机制,描述模型,各个加载器的用途
  22. 热修复与插件化的介绍,原理
  23. 项目中使用的架构,MVP,MVVM的使用,区别,原理
  24. AMS,PMS的作用
  25. AMS 与 应用之间如何进行通信,架构如何
  26. AMS中的消息机制
  27. AMS与Activity生命调度关系
  28. 应用运行权限的使用以及原理,可以举个蓝牙权限的申请,BluetoothService启动功能时会检查
  29. Android系统的启动流程
  30. ContentProvider的使用及原理
  31. Android中的数据存储
  32. Android架构介绍
  33. 开发和维护过哪些framework的业务逻辑
  34. Context的设计思想
  35. JNI的原理以及使用
  36. Android多语言适配
  37. Android多分辨率适配
  38. Android全面屏适配
  39. 根据生命周期的问题,来分析一个内存泄漏的问题, 如Context引用
  40. Android中网络框架的使用以及原理
  41. 用过的开源框架的使用以及原理
  42. 图片的优化,以及三级缓存机制
  43. Android中的动态代理
  44. Databinding的原理
  45. Android进程与Linux进程区别
  46. AndroidP中的用户空间以及Window空间的区别
  47. Android中的加密机制
  48. 用过SeLinux吗?如何写用例
  49. CTS问题你们是如何处理的
  50. Android手机系统研发的流程
  51. Handler机制中Messengequeue为空时,会如何?
  52. 项目中使用过组件化开发吗?用的什么框架?了解原理吗?如何设计路由的?
  53. Android应用安装的流程了解过吗?

其他:

  1. http与https的区别,如何进行加密
  2. http的请求方式,特点,报文结构
  3. socket的原理以及使用
  4. 手写算法,算法的效率等问题
  5. 职业规划
  6. 为什么要离职
  7. 项目中遇到最大的困难是什么
  8. 大家对你的看法是什么
  9. 三次握手,四次挥手
  10. Shell基本的使用,比如,查找某个目录下某个文件的一个方法
  11. git原理,本地操作后,一系列提交的过程
  12. git冲突的处理
  13. git中的merge, cherry pick, rebase区别
  14. repo的使用以及原理
  15. 开发,bug的流程,等级,周期是如何的
  16. 聊一聊敏捷开发

公司面试题

腾讯面试题:

热修复
listview加载复杂布局 错位
大图加载
view自定义
网络框架
缓存
内存泄露
印象最深/遇到的难点
synchronized 与 锁的区别
锁有几种
减小apk大小
混淆
Android跨进程通信的方式

笔试:

  1. 输入两个二进制字符串,想加,输出二进制字符串
    示例:
    Input: a=“11”, b=“1”
    Output: “100”
  2. 给一个语料库,按行存储,文件大小100MB,根据语料库,实现查找自动补全
    示例:
    语料库:
    abcdefg
    abcdde
    acbba
    aedff
    abcxxx
    Input: abc
    返回: abcdefg, abcdde, abcxxx
    要求
  3. 运行内存不超过100MB
  4. 自定义数据结构,缓存语料库,无需每次查找都加载
今日头条面试题:

blockingqueue底层实现,leankcanry底层实现
除了嵌套属性动画,怎么做更复杂的动画
final的使用,内存关系
内存泄漏,过渡绘制,启动优化
多线程,结合了blockingqueue
listview的嵌套使用:滑动冲突,item问题
mvvm底层原理
动态代理
view的绘制,事件消费的一些细节为

你可能感兴趣的:(android,tools)