本專欄專注分享大型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道路上學習和發展~