这篇文章最近很火,我也有一些自己的看法:现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较666的技术,这些技术我们称之为开源框架。
比如,我们以前木匠做一个桌子,我们需要把木头削成木板,然后把木板拼成桌面,然后再去用同样的方式做桌子的腿;现在,我们只需要买做好的桌子板和做好的桌子腿,然后我们就可以用他们拼接就可以自己做一个桌子了。
所以,现在开放代码已经不再需要你去锯木头了,你只需要拿着一个SDK就可以实现一个功能了,那么这个就是我们的开源技术。
那么,这些技术一般包含热升级,热修复,AppInstant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术,图片加载(Glide),网络访问(Retrofit,okHttp)等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。
另外,非常重要的一点,Android开发者不愿意接受新知识,所以对于现在Google推出的新的技术方案毫无感觉,这些都是被controlC和controlV所毒害,开源让开发者失去了自我,失去了基本的编码能力,失去了深入学习的信心和毅力,所以对于很多google推出的新技术好组件(GoogleI/O大会新技术),好框架已经很多人不愿意去学习了这是不应该的,我们需要好好学习啊。
华为四面(3次技术面+HR面)
一面(1hour)
- 自我介绍
- 项目介绍,技术点相关。
- C++和Java区别,GC
- 线程相关,Runnable和Thread的区别。
- 线程池
- synchronized,volatile
- 继承相关,多重继承和接口
- 网络编程
- UPD,TCP区别
- 最大的优点
- 最大的缺点
- 算法,二叉树中序遍历,
早上状态很差,简单问题也会卡壳,希望大家还是能够选择自己状态好的时间点面试……。
二面(40mins)
- 自我介绍
- camera 硬件有哪些引脚。
- 问渲染管线主要有哪几个阶段?
- Android的数据存储方式等等。
- 说说mvc模式的原理,它在android中的运用。
- 谈谈你的工作经历,聊聊你的职业规划等。
- 问了一下,java有几大基础数据类型。
- 问了Activity启动的几种模式,强引用、软引用、弱引用、虚引用使用。
- 还问了我做过的App上有一个实现的自定义View问了下实现的思路。
- 又问了自定义View,三个不同的构造函数的各自作用。
- 问Scoket和Http最大的区别是什么?
华为面试安排非常紧张,但是反馈效率特别高,一二面结束马上会短信通知是否通过。然后隔天直接三面,流程走的非常快。
三面(40mins)
- C/C++基础:inline和define的区别;
- volatile的作用,应用在哪些地方,为什么不是所有的变量都用volatile
- static变量的特点
- 操作系统:线程和进程,怎么实现线程的同步
- 数据结构:对什么排序比较熟悉;二分法查找
- 现场写程序:一句代码实现,判断一个int类型的数是否是2的幂。2进制,位运算a&(a-1)
- 做软件测试什么能力比较重要?
- 白盒测试和黑盒测试的区别。
- 什么是UT?
- 问了关于规范、扩展、回调,父类的静态方法能否被子类重写等问题
- 冒泡排序算法。
- 虚拟机原理、内存回收机制等。
- 说说对华为的了解
- 为什么离职?到华为会不会不习惯?
HR面(20mins)
- 为什么离职
- 有没有职业规划
- 对公司未来的展望
- 以前公司的薪资待遇
- 期待的薪资
HR面还好,感觉都是一些常见的问题,没什么很刁钻的问题。
题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
需要的朋友,可以点赞关注+转发”前往免费领取!
大家参考一个方向。
[外链图片转存中…(img-ilqIT6HU-1612682718685)]
需要的朋友,可以点赞关注+转发”前往免费领取!
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~