学海无涯!2021年抓住金三银四涨薪好时机,持续更新中
前言
IT行業(yè)薪水高,這是眾所周知的,所以很多人大學都選擇IT相關專業(yè),即使非該專業(yè)的人,畢業(yè)了也想去一個培訓機構(gòu)鍍鍍金,進入這一行業(yè)。
但是有關這個行業(yè)35歲就退休的說法,也一直盛傳。
加上這幾年不斷有各大公司裁員,最著名的就是華為,35歲以上的被剔除的甚多。
但是這都是被媒體放大的數(shù)據(jù),真實情況往往不是表面看到的那樣殘酷。
很多在這方面有能力的人,30歲之前可以頻繁跳槽,30歲之后找一個穩(wěn)定的跟自己投緣的大企業(yè),你為企業(yè)帶來的價值大于企業(yè)給予你的付出,你的職位肯定是穩(wěn)穩(wěn)的。而且上升趨勢也不錯。
一般到了35歲,也就昏倒了技術管理崗,無論是在網(wǎng)易、阿里、華為、滴滴、美團這些大企業(yè),還是一些小的互聯(lián)網(wǎng)企業(yè),這類人都是中堅力量。
而我們反過來看看被裁掉的35歲以上的人,職位低、收入低、可替代性強,也就是混了10多年了,你還是在最低端的崗位,那么只能被后來年輕人淘汰。
這就是中國的現(xiàn)實,你想踏踏實實當一個純粹的碼農(nóng),好像挺難的,不像國外,有的人四五十歲還能當一個底層的純粹的碼農(nóng),只專注于寫好的代碼好的軟件。
但是這就是現(xiàn)實,要想不在35歲被退休,那么就在入職時候做好職業(yè)規(guī)劃。
自學能力和解決問題能力,永遠都是IT職業(yè)人必備的能力。
內(nèi)存泄漏是什么?
內(nèi)存泄漏即 ML (Memory Leak) 指 程序在申請內(nèi)存后,當該內(nèi)存不需再使用 但 卻無法被釋放 & 歸還給 程序的現(xiàn)象
內(nèi)存泄漏有哪些情況,對應的解決方案?
內(nèi)存泄漏的原因歸根到底就是當需要被回收變量的內(nèi)存被其他變量引用持有,導致內(nèi)存回收失敗
常見的原因有:
1.非靜態(tài)內(nèi)部類/匿名類
-
原因1:非靜態(tài)內(nèi)部類/匿名類 Handler持有外部的Activity/Fragment對象的引用,導致Activity/Fragemnt被銷毀的時候沒有被回收
-
解決方案:
- 將Handler類改為靜態(tài)內(nèi)部類 + 弱引用(WeakReference)持有Activity引用(靜態(tài)類默認不持有外部的引用)
- 當外部類(一般是Activity/Fragment)結(jié)束生命周期時,清空Handler隊列
-
原因2:非靜態(tài)內(nèi)部類的實例(對象) = 靜態(tài)實例 (其生命周期 = 應用的生命周期)
-
解決方案:
- 將該類改為靜態(tài)類(靜態(tài)類默認不持有外部的引用)
- 將該類抽出來封裝成為一個單例
-
原因3:多線程 工作線程正在處理任務時外部類需要銷毀,此時工作線程持有外部類的引用導致無法被回收
-
解決方案:
- 將該線程類類改為靜態(tài)類(靜態(tài)類默認不持有外部的引用)
- 當外部類結(jié)束生命周期時強制結(jié)束線程
2.集合類
-
原因:集合類添加元素之后持有集合元素的引用,導致該集合元素不可被回收,導致內(nèi)存泄漏
-
解決方案:
- 集合類使用完元素對象后,必須將該元素從集合中刪除(由于一個集合中有多個元素,所以最簡單的方案就是清空集合對象(clean)&設置為Null)
3.資源對象使用后未關閉
-
原因:資源對象使用后未關閉,在Activity/Fragemnt銷毀時沒有關閉/注銷這些資源,將導致無法回收 例如:廣播BraodcastReceiver、文件流Fire、圖片資源Bitmap、數(shù)據(jù)庫游標等
-
解決方案:
- Activity銷毀時及時關閉/注銷資源
4.Static關鍵字修飾成員變量
-
原因:Static關鍵字修飾成員變量的生命周期 = 應用的生命周期 例如 private static Context mContext = context 那么context上下文對應的Activity則無法被回收
-
解決方案:
- 盡量不要使用Static成員變量引用,使用弱引用代替強引用
- 使用單例模式
4.其他使用
-
原因1:Context:當擁有Activity context的引用的對象仍在使用,則該Activity需要銷毀時無法回收
-
解決方案:
- 對context的引用不要超過它的生命周期
- 使用ApplicationContext代替
-
原因2:WebView:不再使用WebView對象后沒有及時銷毀,導致內(nèi)存占用
-
解決方案:
- 通過多線程對不再使用的WebView對象進行銷毀
-
原因3:Adapter:滑動ListView、RecycleView獲取新View時 都在getView()中重新實例化一個View對象,浪費資源,使內(nèi)存占用越來越大
-
解決方案:
- 使用緩存的convertView
- 直接使用ViewHolder
最后
現(xiàn)在都說互聯(lián)網(wǎng)寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎么可能會被裁掉,都是淘汰末端的業(yè)務Curd而已!現(xiàn)如今市場上初級程序員泛濫,這套教程針對Android開發(fā)工程師1-6年的人員、正處于瓶頸期,想要年后突破自己漲薪的,進階Android中高級、架構(gòu)師對你更是如魚得水,趕快領取吧!
上述【高清技術腦圖】以及【配套的架構(gòu)技術PDF】點擊:Android架構(gòu)視頻+BAT面試專題PDF+學習筆記,或者私信回復【技能提升】即可獲取!
為什么某些人會一直比你優(yōu)秀,是因為他本身就很優(yōu)秀還一直在持續(xù)努力變得更優(yōu)秀,而你是不是還在滿足于現(xiàn)狀內(nèi)心在竊喜!
Android架構(gòu)師之路很漫長,一起共勉吧!
總結(jié)
以上是生活随笔為你收集整理的学海无涯!2021年抓住金三银四涨薪好时机,持续更新中的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rtx3060ti参数配置
- 下一篇: 机器学习实验