越来越多的人在提“移动端的下半场”、“Android 开发的焦虑”之类的,也有人在喊“技术天天在变,学也学不完”,“昨天 Kotlin 今天 Flutter”。其实我却认为,如果你技术达到了一定程度,你无需太过在意这些。
移动端真正进入下半场了吗?于我看来并没有,最多说“Android 技术的探索”进入了下半场,而整个市场还是乐观的。以前是 BAT 的天下,而近两年出来越来越多的独角兽:头条、抖音、拼多多、快手、小猿搜题等,这些公司的业务都在移动端上,他们需要招聘更多的移动端人才。如果真要说下半场,只能说很多小型创业公司在退出市场,这确实会导致很多入门工程师失业,但这也说明了这个行业在更加规范。
而且,对于 Android 工程师而言,这更是个好的时代。互联网下沉,那么下沉市场里的用户是使用 Android 多还是 iOS 多,大家都清楚。
那么,对于工程师而言需要做什么才能存活呢?很简单,要么转行,要么提高。我相信,一个技术不错的工程师,不但无需焦虑,而且在这个时代,能够拥有稳定的职业生涯和丰厚的收入。
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.请解释安卓为啥要加签名机制?
最后相关架构及资料领取方式:
点击我的GitHub免费领取获取往期Android高级架构资料、源码、笔记、视频。高级UI、性能优化、架构师课程、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter全方面的Android进阶实践技术,群内还有技术大牛一起讨论交流解决问题。