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