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

版权申明:本文由知识星球《程序员突围》版权所有。未经许可,不得以任何形式转载

如果是做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通信等

专题方向:

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

如果是做AndroidFrameWork开发,主要从深度上考察。

举例一些基础面试题如下:

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

当然远远不止这些基础。

欢迎关注我的微信公众号「何俊林」,音视频、多媒体技术干货

你可能感兴趣的:(作为面试官如何从深度和广度上考察面试者)