从我离校至今我已在外拼搏多年,却时常追忆着在母校的那些日子,但因为工作的原因需要经常出差,一直没有时间去母校看看,直到近段时间,我被派遣到母校的地区进行工作;终于回到了我梦想刚开始的地方,时隔多年,我的母校仿佛没有什么变化,但又感觉许多地方发生了改变; 一晃时隔多年,一切都已物是人非
现如今已经是2022年了,想当初我12年刚刚从进入学校,那时候正处于 IT行业的红利期,只要自身掌握一些开发所需要基础的语法和基础用法,就可以找到一份对口且相对高薪的工作; 然而在我毕业那年,一切就已不再是当初的样子了
IT行业的发展速度十分迅速,面试所问的重点也慢慢的往技术层次,业务层次靠近;如果你现在所拥有的技术还是像12年那般,那你还是趁早转行吧; 下图是我在网上看到一份面试所必问技术点,大家可以参考对照一下
现如今想要获得一份理想的工作,就必须要有一份精美的简历,同时也代表了简历已经决定了 你给面试官的第一印象; 面试官会对你的 工作经历,项目开发介绍,自身特长 等方面的内容进行一个评估,而 面试过程中面试官所问的问题也是围绕着你的简历而来
简历如何编写
简历中最为重要的一点就是你所掌握的 Android 相关技术知识层次的书写,这样面试官才能对你进行一个定级,其实一个公司的职位往往对应了很多个职位,面试官对你的简历进行定级,也表明了你在面试官心中所对应的职位需求,如若面试官无法明确的对你的简历进行一个评级,那么你在面试过程中就会处于一个被动的状态,同时也会影响面试官对你的判断
面试官所问的问题
上面也说到了,基本上面试官所问的问题都会以你的简历作为根据依次询问,但大多数 IT 公司面试 Android 工程师都会以 一些算法和Android、Java的基础知识 作为开头;然后再就是一些问题 问直到摸到你的底为止,我这里也提供一些面试方面的问题给大家参考
1、接口的意义
2、抽象类的意义
3、内部类的作用
4、Java 虚拟机的特性
5、哪些情况下的对象会被垃圾回收机制处理掉
6、进程和线程的区别
7、java中==和equals和hashCode的区别
8、HashMap的实现原理
9、string-stringbuffer-stringbuilder区别
10、什么导致线程阻塞
11、多线程同步机制
12、ArrayMap对比HashMap
13、hashmap和hashtable的区别
14、容器类之间的区别
15、抽象类接口区别
… …
1、Android动画框架实现原理
2、Android设计模式
3、Android属性动画特性
4、Android为每个应用程序分配的内存大小是多少-美团如何导入外部数据库?
5、本地广播和全局广播有什么差别?
6、intentService作用是什么,AIDL解决了什么问题
7、Ubuntu编译安卓系统
8、LaunchMode应用场景
9、Touch事件传递流程
10、Handler,Thread和HandlerThread的差别
11、什么情况导致内存泄漏
12、ANR定位和修正
13、什么情况导致oom
14、Service与Activity之间通信的几种方式
15、如何保证service在后台不被Kill
16、Requestlayout,onlayout,onDraw,DrawChild区别与联系
17、Activity Window View三者的差别,fragment的特点
18、invalidate和postInvalidate的区别及使用
19、LinearLayout和RelativeLayout性能对比
20、请解释下 Android 程序运行时权限与文件系统权限的区别
21、如何修改 Activity 进入和退出动画
22、SurfaceView & View 的区别
23、开发中都使用过哪些框架、平台
24、使用过那些自定义View
25、自定义控件:绘制圆环的实现过程
26、自定义控件:摩天轮的实现过程
27、GridLayout的使用
28、流式布局的实现过程
29、Android 中如何捕获未捕获的异常
… …
像上述这些面试题,大多数的面试官都会问到, 所以这些你是必须要了解清楚的; 我这边自荐一份免费的《2022 高级开发面试题以及答案解析》, 这里面包含了大厂高频的面试题,以及我这些年的面试经历,非常适合大家查漏补缺
需要完整版PDF文档的朋友: 可以私信发送 “面试” 即可免费获取
最后我想说:
对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们
技术是无止境的,你需要对自己提交的每一行代码、使用的每一个工具负责,不断挖掘其底层原理,才能使自己的技术升华到更高的层面
Android 架构师之路还很漫长,与君共勉