本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注
面试官: ButterKnife为什么执行效率为什么比其他注入框架高?它的原理是什么
心理分析: ButterKnife框架一直都是使用,很少又开发者对butterknife深入研究的,既然你是面试Android高级岗位,自然需要有相应被问到原理的准备,面试官想问你对注解处理器了解多少,Android编译流程有多少认识
**求职者:**应该从 注解处理器原理 与优势说起,肯定注解处理器对解放生产力的作用。然后可以引申常见的 Butterknife,Dagger2,DBFlow。这才是加分项
优势
- 我们平常在使用Java进行开发Android时,经常会需要写很多重复冗余的样板代码,开发中最常见的一种,就是findViewById了,如果一个界面有很多View,写起来那叫一个要死要死。于是我们注解处理器可以帮助解决冗余的代码的,
- 由于是在编译器进行生成的代码,并不是通过反射实现,所以性能优势是非常高的
- 加快开发速度,由于减少了写繁琐的代码,会对项目进度起有利的作用
接下来我们一起来看注解处理的原理
在android开发中,比较常用到的第三方库中,有不少用到了 注解处理器(Annotation Processor)。 比较常见的就有 Butterknife,Dagger2,DBFlow 等。
一.那么这些年,996 风靡互联网,到底是什么原因?总结了几条:
1、通过 996 高强度加班,逼迫员工主动辞职,企业想通过这个方法节省裁员所需要的补偿费。
不知道从什么时候起,互联网公司在年底或者年初都开始通过全员加班方式来逼迫员工辞职,据我了解,狗东、某米、某赞等公司部分事业部都有这样的现象,这些市值几十上百亿美金的公司还用如此下三滥的方式逼迫员工辞职,别说基本的社会责任没有尽到,就是连对员工基本的尊重都没有做到,再次表示强烈谴责类似公司的做法。
2、翻倍薪资挖人后,通过 996 形式来剥削员工的时间,达到平衡成本又更容易挖人的目的。
这个是某头条为代表的新兴独家兽公司最普遍的做法,通常都是通过双倍薪资到传统大厂挖人,然后通过 996 方式平衡挖人成本。很多小伙伴暗地也计算过:跳槽之后,表面上薪资是涨了,但是一算时薪,发现并没有高多少。
3、无能管理层,跟风 996 ,这可能是 996 最搞笑又可悲的一个原因了。
很多中小公司创始人或者超级公司的部分部门,看到公司其他部门或者竞争对手公司在大搞 996 加班,然后这些无头脑的管理层拍脑袋就决定来个 996,而这可能是最搞笑的 996 原因了,我猜这些在大公司的某些部门很常见。
4、赶项目封闭开发,这类加班情况比 996 还要严重。
很多公司做紧急的战略性项目,为赶时间经常会搞高强度的封闭开发,这时候基本就是一个月无休甚至半年无休,不少朋友吐槽所谓“封闭式开发”,就是无良加班的雅称而已。
二.如何应对互联网行业病态 996 ?
都说在中国没有不加班的程序员,那么如果遇到长期病态加班的公司怎么办呢?尤其是上面 1、2、3的情况。
1、匿名吐槽公司加班现象、或者通过媒体爆料;
不少公司都还是非常重视自身的形象,而加班严重的公司往往招不到更加优秀的人才。
2、辞职换工作
对于长时间病态加班的工作,不辞职留着猝死?虽说现在很多公司都会有加班现象,尽量找一个少加班的吧!
3、多转发这类反对病态加班的文章,套用一句鸡汤“我们终将改变潮水的方向“。
三.想对资本家和无能管理层说几句。
1、我们不是抱怨加班,我们是抱怨病态的996,如果项目紧张,我们也是可以偶尔免薪加班赶进度的。
2、让员工加班不是管理层面对竞争的减压器,你们不能因为自己的无能而让员工疲于加班。
3、长时间加班让我们效率更低下,这反而失去了加班的意义。
4、《劳动合同法》第31条规定:用人单位应当严格执行劳动定额标准,不得强迫或者变相强迫劳动者加班。
我们可以通过合法的手段维护自己的利益,本来人生就是两个字“生活”即生下来活下去,生活不易,柴米油盐酱醋茶,善待自己
很多朋友觉得自己年轻,加加班没啥大问题,一颗熊熊的奋斗心当然是非常好的,但是很多人真的忽略了生活本来的样子。
除了工作和加班,我们应该花点时间
优化下工作方法,高效率会让我们工作起来更轻松。
除了工作和加班,我们应该花点时间
去追个妹子,偶尔制造些生活小浪漫。
除了工作和加班,我们应该花点时间
去健身房,一身腱子肉更能扛住越来越重的生活工作压力。
除了工作和加班,我们应该花点时间
出门走走,爬爬山,看看雪体验体验人生
人生慢慢长,代码和远方也很配
题外话
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多程序员朋友无法获得正确的资料得到学习提升,故此将并将重要的Android进阶资料包括自定义view、性能优化、MVC与MVP与MVVM三大框架的区别、NDK技术、阿里面试题精编汇总、常见源码分析等学习资料免费分享出来。
【Android学习PDF+学习视频+面试文档+知识点笔记】
【Android思维脑图(技能树)】
知识不体系?这里还有整理出来的Android进阶学习的思维脑图,给大家参考一个方向。
需要的朋友,可以点赞关注+转发”前往免费领取!
脑图,给大家参考一个方向。
[外链图片转存中…(img-9GBScM6G-1621584547337)]
需要的朋友,可以点赞关注+转发”前往免费领取!
希望我能够用我的力量帮助更多迷茫、困惑的朋友们,帮助大家在IT道路上学习和发展~