原创 Servlet相關接口(1)——RequestDispatcher,Cookie,HttpSession

RequestDispatcher 在Web程序中,經常是由多個Servlet來完成請求。RequestDispatcher接口就是爲了多個Servlet之間的調整而實現的。該接口由HttpServletRequest的getR

原创 Servlet相關接口(2)—— ServletConfig,ServletContext

ServletConfig 當容器初始化Servlet時,會爲Servlet創建唯一一個ServletConfig對象。利用Web容器讀取web.xml文件將初始化參數傳給ServletConfig,而ServletConfig

原创 Redis數據類型——hash

簡介 新的存儲需求:對一系列存儲的數據進行編組,方便管理,典型應用存儲對象信息 需要的存儲結構:一個存儲空間保存多個鍵值對數據 hash類型:底層使用哈希表結構實現數據存儲 hash存儲結構優化 : 如果field數量較少,存儲

原创 Android——內存泄漏

轉自 https://juejin.im/post/5a652d31518825734108080d

原创 Redis數據類型——zset(sorted set)

簡介 新的存儲需求:數據排序有利於數據的有效展示,需要提供一種可以根據自身特徵進行排序的方式 需要的存儲結構:新的存儲模型,可以保存可排序的數據 sorted_set類型:在set的存儲結構基礎上添加可排序字段 數據結構 它

原创 HTTP無狀態與如何變成有狀態

爲什麼說HTTP協議是無狀態的 如何讓HTTP“有狀態”

原创 Java併發編程——線程池

使用原因 創建線程要花費昂貴的資源和時間,如果任務來了才創建線程那麼響應時間會變 長,而且一個進程能創建的線程數有限。爲了避免這些問題,在程序啓動的時候 就創建若干線程來響應處理,它們被稱爲線程池,裏面的線程叫工作線程。從 JDK

原创 JVM——執行流程、內存模型

JVM學習腦圖 執行流程 運行時數據區 JVM 內存區域主要分爲線程私有區域【程序計數器、虛擬機棧、本地方法區】、線程共享區 域【JAVA堆、方法區】、直接內存。 線程私有數據區域生命週期與線程相同, 依賴用戶線程的啓動

原创 Redis高級數據類型——Bitmaps、HyperLogLog、GEO

Bitmaps 簡介 在我們平時開發過程中,會有一些 bool 型數據需要存取,比如用戶一年的簽到記錄,簽了是 1,沒簽是 0,要記錄 365 天。如果使用普通的 key/value,每個用戶要記錄 365 個,當用戶上億的時候,

原创 Java併發編程——ReentrantLock

簡介 ReentantLock 繼承接口 Lock 並實現了接口中定義的方法,他是一種可重入鎖,除了能完 成 synchronized 所能完成的所有工作外,還提供了諸如可響應中斷鎖、可輪詢鎖請求、定時鎖等 避免多線程死鎖的方法。

原创 Java基礎——final、finally、finalize

final 如果一個類被聲明爲final,意味 着它不能再派生出新的子類,即不能被繼承,因此它和abstract是反義詞。 將 變量聲明爲final,可以保證它們在使用中不被改變,被聲明爲final的變量必須 在聲明時給定初值,

原创 Java併發編程——Synchronized

原理 這篇大佬的講的還是比較詳細了:深入理解Java併發之synchronized實現原理 然後記住幾幅圖:

原创 Spring——IOC思想

簡介 這篇文章講的很形象了,很容易理解:《Spring》IOC實現原理

原创 Java併發編程——線程創建

法一:直接通過Thread Thread t = new Thread(){ @Override public void run() { log.de

原创 Java併發編程——Java線程內存模型JMM

原理 大佬的講解,基礎知識還是蠻清楚的,但是對原子性那塊講的不是很透徹: 深入理解Java內存模型 可見性 在多處理器下,爲了保證各個處理器的緩存是一致的,就會實現緩存一致性協議,每個處理器通過嗅探在總線上傳播的數據來檢查自己