1.写在前面
想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样。
2020届的秋招提前批已近尾声,目前Android开发岗已拿到的offer有[百度],[字节跳动],[美团点评],[网易],岗位均为Android开发方向。距离毕业答辩还有点时间,写写我的互联网转行之路。
先介绍一下自己的背景,北航本硕,学习成绩中上,有两个学科竞赛奖项,一篇SCI。
计算机方面,没有实习,只有一个略微相关的项目能写到简历里面。专业知识全靠自学,所以过程也异常痛苦。准备时间从2019年寒假开始,到2020年八月底结束,前后跨度不到一年。
秋招期间,互联网总共投递20多份简历,笔试8次,面试9次,5家单位给出明确录用意向,最终的结果比自己的预期理想。
Java相关
1. HashMap 和HashTable 以及CurrentHashMap 的区别。
2. synchronized 和volatile 、ReentrantLock 、CAS 的区别。
3. JVM 类加载机制、垃圾回收算法对比、Java 虚拟机结构等。
4. Java 的四大引用
5. Java 的泛型,<? super T> 和 <? extends T> 的区别。
6. Java 线程有哪些状态,有哪些锁,各种锁的区别。
7. final 、finally、finalize 区别。
8. 接口和抽象类的区别。
9. sleep 、wait、yield 的区别,wait 的线程如何唤醒它?
10. java 中==和 equals 和 hashCode 的区别
11.String、StringBuffer、StringBuilder 区别
12.接口的意义
13.进程和线程的区别
14.讲一下常见编码方式?
15序列化 Serializable 和 Parcelable 的区别
16.string 转换成 integer 的方式及原理
17静态代理和动态代理的区别,什么场景使用?
18. 说说你对 Java 反射的理解
19. 说说你对 Java 注解的理解
20. 说一下泛型原理,并举例说明
计算机网络部分
1. TCP 与 UDP 的区别。
2. 三次握手、四次挥手。为啥是三次不是两次?
3. HTTPS 和 HTTP 的区别。HTTP 2.0,3.0?
4. 浏览器输入一个 URL,按下回车网络传输的流程?
5. TCP 建立连接后,发包频率是怎样的?
5. OKHttp
6.如何验证证书的合法性?
7.https中哪里用了对称加密,哪里用了非对称加密,对加密法(如RSA)等是否有了解?
8.client如何确定自己发送的消息被server收到?
9.谈谈你对WebSocket的理解
10.WebSocket与Socket的区别
11.谈谈你对安卓签名的理解
12.请解释安卓为啥要加签名机制?
最后,面试前该准备哪些资源复习?
其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一下我面试期间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《Android开发七大模块核心知识笔记》
《960全网最全Android开发笔记》
《379页Android开发面试宝典》
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。
《507页Android开发相关源码解析》
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
oid,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
资料太多,全部展示会影响篇幅,暂时就先列举这些部分截图,戳这里免费领取