版权申明:本文由知识星球《鱼哥星球圈》版权全部。未经许可,不得以任何形式转载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回收策略
固然远远不止这些基础。多线程
欢迎关注个人微信公众号「码农突围」,音视频、多媒体技术干货