实习拿了华为,爱奇艺,网易游戏的offer,最终去了华为南研所,Android客户端的面试知识点涉及到Android,Java,计算机网络,数据结构,操作系统,设计模式...
Android
- 四大组件使用及原理,View原理,动画,常用开源库(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson...),Handler,Fragment...
Java
- Java基础知识,反射,泛型,集合源码,多线程原理,JVM...
计算机网络
- HTTP/HTTPs/TCP/UDP/DNS/IP...
操作系统
- 中断,用户态/内核态,阻塞,临界区,多线程模型...
数据结构
设计模式
建议
-
主要针对非科班同学:最好系统的看下操作系统和计算机组成原理,推荐 清华大学陈渝的操作系统公开课
,因为看完操作系统后才能系统的认识计算机的原理,能更好的从底层去认识上层
- 多看源码,包括Java层的代码在JVM中的实现源码(如synchronized的实现源码),Android Framework的源码(更好认识Android层的实现),Android开源库源码(OKHttp,Retrofit,RxJava,EventBus,Glide,Gson...,更好的学习优秀开源库源码,做到用的熟,懂原理)
- 多问自己为什么,比如两个技术点优缺点分别在哪,各自的使用场景(如单例模式下饿汉与懒汉的优缺点,使用场景),这样才能更契合实际应用开发,针对不同场景使用不同技术点
- 及时复盘总结面试中遇到的问题,分为两方面,一是知道但不能深入的,这种需要继续多看多总结,另一种是没接触过的,这种可以先了解下,万一面试又遇到了,可以回答下了解到的,之后再去深入总结(毕竟时间有限,不可能面面俱到,只能不断学习总结)
原文
https://juejin.im/post/5e7db915e51d4546c72dfacd