原创 JDK源碼解析集合篇--LinkedList全解析

LinkedList是基於鏈表實現的,鏈表和數組是兩種不同的線性物理存儲結構,具體不再介紹鏈表的用法,這是基本的數據結構知識。LinkedList是通過雙向鏈表的實現,即:鏈表中任意一個存儲單元都可以通過向前或者向後尋址的方式獲取

原创 對於算法一些概念的小總結

        本學期上了算法設計與分析這門課程,簡單的對其中的一些概念進行一下總結。基本都是我的一些宏觀上的理解。         時間複雜度,空間複雜度是算法重要的衡量標準。有很多算法問題都是多項式時間無法解決的。在算法面試中,如果你

原创 JDK源碼解析基礎篇-String、StringBuilder、StringBuffer

首先向搞懂常量池的知識點:觸摸Java常量池 常量池技術 java.lang包的最後一篇基礎篇。搞完這篇就開始集合框架和併發包等內容。Sting、StirngBuilder、StringBuffer的內容很早之前寫過 Strin

原创 設計模式--適配器模式(JDK中的應用)

本來想開始進行java集合框架的學習,但是看到集合框架中用到了適配器模式,所以先學習一下此設計模式,能讓我們對java集合框架的設計思想理解更深入。JDK源碼中應用了很多設計模式,在學習源碼的遇到的時候會一一進行學習。閒言少敘,開

原创 JDK源碼解析集合篇--ArrayList全解析

對於一個集合的使用,我們首先關注的是: 1、 增刪改查的特點(時間複雜度是怎樣的) 適用於隨機訪問 2、是否允許空 允許爲空 3、是否允許重複數據 允許 4、是否有序,有序的意思是讀取數據的順序和存放數據的順

原创 Redis 原理及應用(3)--內存淘汰機制、主從同步原理,HA策略(哨兵機制)分析

     在前兩篇,我們學習了一下Redis的相關數據類型、底層實現、持久化、集羣分區等知識,這一篇我們重點搞懂一下Redis的內存淘汰機制,用於容錯的哨兵機制以及非常重要的應用場景。 Redis內存淘汰機制    Redis是內存數據庫

原创 Redis 原理及應用(2)--持久化方式、集羣管理、事務及與Memcached的對比

    在上一篇文章中,主要學習了一下Redis的5種數據結構的底層實現原理,在這一篇中,將介紹Redis的持久化方式,與Memcached的區別,Redis3.0的集羣部署以及廣泛的應用場景。 Redis持久化方式 redis默認創建1

原创 Zookeeper系列(2)--2PC、3PC及其應用

  在上一篇中,我們介紹了爲什麼使用分佈式,爲什麼會出現分佈式數據一致性問題,以及相關分佈式理論:CAP/BASE理論,這些是我們進行後邊介紹的分佈式一致性算法的基礎,正是由於在系統的可用性和數據一致性之間反覆的權衡,於是出現了一系列的一

原创 Zookeeper系列(5)--ZAB協議,消息廣播,崩潰恢復,數據同步

在前一篇中,寫了Zookeeper的相關概念,以及節點、acl,watcher等機制,這一篇就寫一下保證ZK集羣高可用及數據一致性的底層實現算法:ZAB協議。ZAB協議概述在前面的文章中,介紹了經典的分佈式數據一致性算法Paxos算法,但

原创 Zookeeper系列(4)--ZK概述,數據模型,節點特性,Watcher機制、ACL及數據存儲

在zookeeper系列的前三篇,介紹分佈式數據一致性的相關原理及經典的分佈式一致性算法,比如:2PC,3PC,Paxos算法。在本篇,我們正式開始介紹Zookeeper,Zookeeper是分佈式一致性問題的工業解決方案,是常用的分佈式

原创 Zookeeper系列(6)-- Zookeeper的典型應用場景

    在寒假前,完成了Zookeeper系列的前5篇文章,主要是分佈式的相關理論,包括CAP,BASE理論,分佈式數據一致性算法:2PC,3PC,Paxos算法,Zookeeper的相關基本特性,ZAB協議。今天,完成Zookeeper

原创 常見安全漏洞及解決方案

概述:常見的安全漏洞:漏洞名稱漏洞背景避免方法解決方案CSRF(跨站請求僞裝)攻擊者誘導用戶點擊連接,用戶瀏覽器攜帶cookie成功請求服務器,造成用戶信息丟失。驗證 HTTP Referer 字段token驗證機制驗證碼spring-b

原创 Zookeeper系列(3)--Paxos算法的原理及過程透徹理解

     從上一篇我們瞭解了2PC和3PC之後,我們可以發現,無論是二階段提交還是三階段提交都無法徹底解決分佈式的一致性問題以及無法解決太過保守及容錯性不好。Google Chubby的作者Mike Burrows說過,世上只有一種一致性

原创 Redis 原理及應用(1)--數據類型及底層實現方式

  Redis是一個key-value存儲系統,現在在各種系統中的使用越來越多,大部分情況下是因爲其高性能的特性,被當做緩存使用。Redis由於其豐富的數據結構也可以被應用到其他場景。Redis是一個K-V的非關係型數據庫(NoSQL),

原创 Zookeeper系列(1)--分佈式一致性理論,CAP,BASE理論

Zookeeper系列,會從分佈式一致性理論開始介紹,設計諸如:CAP,BASE理論,分佈式一致性算法:2PC,3PC,Paxos,ZAB以及Zookeeper的節點特性,Zookeeper如何保證一致性及高可用,最後會介紹zk的各種應用