前言 從剛開始做Android開始,就時(shí)刻謹(jǐn)記一條規(guī)則:如果有能實(shí)現(xiàn)功能的Android API,就不要用Java API。所以我很少用Timer,直到前一陣一個(gè)朋友問我: ...
前言 從剛開始做Android開始,就時(shí)刻謹(jǐn)記一條規(guī)則:如果有能實(shí)現(xiàn)功能的Android API,就不要用Java API。所以我很少用Timer,直到前一陣一個(gè)朋友問我: ...
曾經(jīng)我們很窮,日子很苦,每天為了生活四處奔波,那時(shí)我還小,你總是照顧我。日子雖苦,但是心里很甜。 為了改變生活,我決定離開,試著通過在外面的努力改變現(xiàn)在的生活。也許是真的得到...
前言 此篇文章記錄日常遇到的一個(gè)小坑:Handler的removeCallbacksAndMessages沒生效。 正文 需求: 需求:有1-5個(gè)超時(shí)任務(wù),如果某個(gè)任務(wù)在規(guī)定...
11、重寫Object.equals時(shí),必須重寫Object.hashcode 如果需要重寫Object的equals方法,那么一定要重寫hashCode方法, 否則會(huì)在哈希...
7、拋棄廢棄的對象引用 當(dāng)一個(gè)對象不再使用時(shí),應(yīng)該將該引用設(shè)置為null,避免該對象并不能被JVM回收。文中列出以下幾種情況: 數(shù)組中的對象,使用結(jié)束后要把對應(yīng)的未知的引用設(shè)...
1、考慮使用靜態(tài)生產(chǎn)方法替代構(gòu)造方法 如果某一個(gè)類擁有多個(gè)構(gòu)造方法,且參數(shù)各不相同,使用靜態(tài)的生產(chǎn)方法替代構(gòu)造方法的好處: 過多的構(gòu)造方法增加了使用者對于類的理解成本,并且很...
前言 沈陽剛剛?cè)肼殻罱陂喿x之前同事的代碼,因?yàn)樗募軜?gòu)設(shè)計(jì)中使用了Handler模型,所以再次總結(jié)一下Handler的使用問題,這也面試的常見問題之一。 本文中可能涉及到...
@騎豬看大海_8731 分兩種情況:
1、如果網(wǎng)絡(luò)請求返回301重定向會(huì)重新發(fā)起請求
2、網(wǎng)絡(luò)請求失?。ǖ刂峰e(cuò)誤,IO異常等)跟根據(jù)配置的次數(shù)重試;
上面的代碼主要關(guān)注兩處:
1、// 如果已經(jīng)超過最大的網(wǎng)絡(luò)請求追加數(shù),釋放連接,拋出協(xié)議異常
if (++followUpCount > MAX_FOLLOW_UPS) {
streamAllocation.release();
throw new ProtocolException("Too many follow-up requests: " + followUpCount);
}
2、recover方法里有介紹不能重試的幾種情況;
okhttp源碼解析(四):重試機(jī)制前言 這一篇我們分析okhttp的重試機(jī)制,一般如果網(wǎng)絡(luò)請求失敗,我們會(huì)考慮連續(xù)請求多次,增大網(wǎng)絡(luò)請求成功的概率,那么okhttp是怎么實(shí)現(xiàn)這個(gè)功能的呢? 正文 首先還是回到...
正文 本文主要列舉Java泛型與Kotlin泛型的基本知識(shí),以及兩者的區(qū)別。 什么泛型 泛型程序設(shè)計(jì)是程序設(shè)計(jì)的一種風(fēng)格或或規(guī)范。簡單的說就是該類型可變,在編寫代碼時(shí)可以根據(jù)...
自從Google官方將OkHttp作為底層的網(wǎng)絡(luò)請求之后,作為OkHttp底層IO操作的Okio也是走進(jìn)開發(fā)者的視野,這個(gè)甚至是取代了java的原生IO庫的存在到底有什么特殊...
前言 本篇簡單介紹Android以及Java提供了的數(shù)據(jù)并發(fā)類。 什么是鎖 并發(fā)鎖分為兩種,一種是悲觀鎖synchronized,認(rèn)為所有的訪問都存在競爭關(guān)系,所以直接在底層...
前言 無論是剛剛加入Android的新人還是工作n年的老碼農(nóng),如何加載一張圖片到ImageView,都能輕松搞定。隨著Glide的發(fā)布,我已經(jīng)很久沒有寫過相關(guān)的代碼了,最近復(fù)...
前言 此文僅分析Applcation的創(chuàng)建過程。 正文 如果我們要啟動(dòng)App,系統(tǒng)會(huì)創(chuàng)建ZygoteInit進(jìn)程啟動(dòng)整個(gè)應(yīng)用,ZygoteInit.main是整個(gè)應(yīng)用啟動(dòng)的入...
前言 最近做項(xiàng)目遇到了一個(gè)很奇怪的問題,情況如下: 創(chuàng)建對象TestBean,其中type和name需要接口返回并解析,time字段需要客戶端修改,做一些必要的記錄,希望ti...
前言 本文內(nèi)容來源于《深入理解Java虛擬機(jī)》,各大電商平臺(tái)均可購買。 正文 類加載的時(shí)機(jī) 類加載的整個(gè)生命周期: 加載 - 驗(yàn)證 - 準(zhǔn)備 - 解析 - 初始化 - 使用 ...