做为面试官如何从深度和广度上考察面试者

版权申明:本文由知识星球《鱼哥星球圈》版权全部。未经许可,不得以任何形式转载android

若是是作Android应用开发,做为面试官通常从深度和广度以及项目关键点来进行提问.面试

通常有深度面试官会进行深挖,看你能到哪层,好比:面试官问经常使用数据结构有哪些?Java中你用过哪些集合类?数组

  • 层次一:数据结构有哪些,数组,链表,树,图,表
  • 层次二: ArrayList 和 LinkedList 用的是哪种?数组,链表
  • 层次三: HashMap 的原理,get方法和put方法区别?如何解决Hash冲突。散列列表
  • 层次四: HashMap(5) 长度是多少?
  • 层次五: 为何是 2 的幂次,各个版本之间的区别
  • 层次五:ConcurrentHashMap有用过么?和HashMap区别是什么?

再举例一个,我常常回问的问题:安全

  • 层次一:进程和线程有什么区别?
  • 层次二:线程有哪几种状态
  • 层次三:Java中多线程有用过么?线程安全怎么理解?Volatile关键字有用过么?是线程安全的么?为何?和synchronized有什么区别?
  • 层次四:Java中用过哪些锁?lock和synchronized有什么区别?
  • 层次五:给你一个两个线程,线程1打印‘A’,线程2打印‘B’,按顺序输出ABABAB...,写个伪代码或是思路。

若是是广度上,相似就是从 Java基础:基础概念,集合框架,内存模型,多线程,GC回收机制及策略 Android基础:动画,自定义View,事件分发,四大组件的了解,AIDL,Binder通讯等性能优化

专题方向:微信

  • 一、如简历有写插件化,模块化,组件化开发,像我必问原理,过程,组件之间如何通讯,
  • 二、如简历有写性能优化,从内存优化,渲染优化,电量优化,网络优化方向问实际中遇到的问题和解决手段,包括使用具体的工具名字。
  • 三、如简历有写作过NDK/JNI开发,必问虚函数,虚析构,Java如何传数据给JNI。 JNI有哪几种种引用?局部引用、全局引用、弱全局引用区别?怎么释放引用?是否是必定要释放引用?
  • 四、如简历有过音视频开发,这个问的就不少了,后续总结。

若是是作AndroidFrameWork开发,主要从深度上考察。网络

举例一些基础面试题以下:数据结构

  • LRUCache原理
  • 图片加载原理
  • 模块化实现(好处,缘由)
  • JVM
  • 视频加密传输
  • 统计启动时长,标准
  • 如何保持应用的稳定性
  • ThreadLocal 原理
  • 谈谈classloader
  • 动态布局
  • 热修复,插件化
  • HashMap源码,SpareArray原理
  • 性能优化,怎么保证应用启动不卡顿
  • 怎么去除重复代码SP是进程同步的吗?有什么方法作到同步
  • 介绍下SurfaceView
  • HashMap实现原理,ConcurrentHashMap 的实现原理
  • BroadcastReceiver,LocalBroadcastReceiver 区别
  • Bundle 机制Handler 机制
  • android 事件传递机制
  • 线程间 操做 List
  • App启动流程,从点击桌面开始
  • 动态加载
  • 类加载器
  • OSGI
  • Https请求慢的解决办法,DNS,携带数据,直接访问IP
  • GC回收策略

固然远远不止这些基础。多线程

欢迎关注个人微信公众号「码农突围」,音视频、多媒体技术干货
相关文章
相关标签/搜索