原创 ThreadLocal-從源碼看設計

ThreadLocal-從源碼看設計 文章目錄ThreadLocal-從源碼看設計一、ThreadLocal定義二、從源碼看設計1.get方法2. set方法3.總結4.ThreadLocalMapThreadLocal和同步機制

原创 螺旋算法

螺旋算法 算法題目 題來源–LeetCode(https://leetcode-cn.com/problems/spiral-matrix) 給定一個包含 m x n 個元素的矩陣(m 行, n 列),請按照順時針螺旋順序,返回

原创 HTTP1.0、1.1和2.0區別

HTTP1.0、1.1和2.0區別 Http原理請點擊閱讀 點擊查看 HTTP 1.0 Http1.0是老的HTTP協議標準,規定了客戶端和服務器只能保持短暫的連接,請求完成後就完畢,每次客戶端請求都需要建立一次TCP連接,請求完

原创 深入c++層分析Serializable和Parcelable的區別

深入c++層分析Serializable和Parcelable的區別 文章目錄深入c++層分析Serializable和Parcelable的區別一、Serializable的源碼分析1、首先來看一下ObjectOutputStr

原创 生產消費模型-lock和synchronized實現

生產消費模型-lock和synchronized實現 lock實現AB循環輸出 同一Lock鎖雙條件分別控制AB線程 public class TestThread { public static void main(S

原创 源碼分析Handler+Looper+MessageQueue消息模型

文章目錄源碼分析Handler消息模型Handler職責1.Message的發送者2.Message的處理者3.Message的移除者Looper職責Looper的創建Looper循環MessageQueue職責構造函數和部分成員

原创 Activity、Window和View的關係源碼分析

Activity、Window和View的關係 文章目錄Activity、Window和View的關係Activity的創建Window的創建View的創建WindowManager的addViewmWindowSession.a

原创 AIDL設計思路

AIDL設計思路 文章目錄AIDL設計思路AIDL1.實現一個自定義的AIDL2.IDE自動生成IMyService.java文件3.本地IPC-Stub本地的使用4.遠端IPC使用5.aidl整體流程 AIDL 1.實現一個自定

原创 Android資源加載流程

Android資源加載流程 文章目錄Android資源加載流程從使用到原理使用獲取String資源查找資源的適配過程layout.xml資源的加載assets目錄的資源加載 從使用到原理 使用 首先來看一個從資源string獲取字

原创 ffmpeg推拉流優化方案

ffmpeg推拉流優化方案 文章目錄ffmpeg推拉流優化方案一、卡頓優化設備老舊視頻流音視頻不同步網絡二、延時優化三、傳輸協議優化四、首屏秒開優化服務器做優化客戶端優化五、弱網優化六、DNS劫持優化七、服務端cdn優化 主要從以

原创 基於OKhttp下載工具YTDownloader

YTDownloader 最近對網絡下載這一塊比較感興趣,所以專門整理和寫了一個簡易的下載庫–YTDownload github地址:https://github.com/yetaoii/YTDownload 特性 基於Retr

原创 深入理解java鎖機制

深入理解java鎖機制 文章目錄深入理解java鎖機制前言1. 樂觀鎖 VS 悲觀鎖2. 自旋鎖 VS 適應性自旋鎖3. 無鎖 VS 偏向鎖 VS 輕量級鎖 VS 重量級鎖Java對象頭Monitor無鎖偏向鎖輕量級鎖重量級鎖4.

原创 理解Java鎖機制

理解Java鎖機制 文章目錄理解Java鎖機制1. synchronizedsynchronized的幾種使用方式synchronized的實現原理Monitor2. lock3. volatile關鍵字3. 樂觀鎖-悲觀鎖(主線

原创 fastJson序列化和反序列化流程

fastJson序列化和反序列化流程 一、核心源碼 1、SerializeWriter 該類主要用於序列化,有以下成員變量 public final class SerializeWriter extends Writer {

原创 源碼分析Gson序列化和反序列化流程

源碼分析Gson序列化和反序列化流程 一、核心源碼 1.核心對象— TypeAdapter 類型適配器,裏面 public abstract class TypeAdapter<T> { /** * 該方法用於t