原创 小白學TCP/IP(三)數據鏈路層篇

數據鏈路層 數據鏈路層位於物理層與網絡層之間,其設計的初衷就是順利爲同一數據鏈路內的主機提供數據服務,不考慮可靠性,可靠性的部分由傳輸層的TCP協議實現. 數據鏈路層在網絡傳遞中的地位 假設在通信的過程中需要通過路由器的話,

原创 淺析樹結構(一)二叉查找樹(BST樹代碼實現)

二叉查找樹 二叉查找樹定義 定義:一顆二叉查找樹(BST)是一棵二叉樹,其中每個結點都含有一個Comparable的鍵(以及相關聯的值)且每個結點的鍵都大於其左子樹中的任意結點的鍵而小於右子樹的任意結點的鍵. 二叉查找樹中搜索,

原创 淺析樹結構(二)AVL平衡二叉樹(AVL樹原理及代碼實現)

平衡二叉樹 平衡二叉樹定義 平衡二叉樹有兩種形式: 是一棵空樹 是一個左右兩個子樹的高度差的絕對值不超過1,並且左右子樹都是平衡二叉樹的樹 平衡二叉樹的常用實現方法有AVL樹,紅黑樹(紅黑樹並不是嚴格意義上的平衡,並不

原创 Java 併發編程(二)Synchronized原理剖析及使用

Java 併發編程之Synchronized原理剖析及使用 在開始介紹Synchronize之前,先了解一下在併發中極其重要的三個概念:原子性,可見行和有序性 原子性: 是指一個操作不可以被中斷.比如賦值操作a=1和返回操作re

原创 小白學TCP/IP(四)IP協議篇

IP協議篇 網絡層與數據鏈路層之間的關係 網絡層負責端到端之間(消息發送端與消息接收段)的通信,但至於中間消息是怎樣被轉發的,得通過數據鏈路層實現,也就是說數據鏈路層負責每個數據鏈路從源MAC地址到目標MAC地址之間的數據傳輸,而

原创 Java 併發編程(五)原子操作類

Java 併發編程之原子操作類 Java從JDK1.5開始提供了Java.util.concurrent.atomic包,這個包中的原子操作類提供了一種用法簡單,性能高效,線程安全地更新一個變量的方式. 接下來以AtomicInt

原创 小白學TCP/IP(五)IP協議相關技術

IP協議相關技術 IP旨在讓最終目標主機收到數據包,但是這一過程僅僅依靠IP是無法實現的,必須要有實現解析主機名稱和MAC地址的功能,以及數據包在發送過程中異常情況處理的功能,此外還會涉及IP必不可少的其他功能. DNS(D

原创 Java 併發編程(三)Synchronized底層優化(偏向鎖與輕量級鎖)

Synchronized低效的原因 在Java SE 1.6發佈前,使用Synchronized關鍵字實現同步功能是比較低效的,很多人稱其爲重量級鎖.究其原理,是因爲Synchronized是通過對象內部的一個叫做監視器鎖(mon

原创 Java 併發編程(一)Volatile原理剖析及使用

Java 併發編程之Volatile原理剖析及使用 在開始介紹Volatile之前,回顧一下在併發中極其重要的三個概念:原子性,可見行和有序性 原子性: 是指一個操作不可以被中斷.比如賦值操作a=1和返回操作return a,這

原创 小白學TCP/IP(六)TCP與UDP篇

TCP與UDP篇 TCP提供可靠的通信傳輸,而UDP則常被用於廣播和細節控制交給應用的通信傳輸 傳輸層 傳輸層的作用: 網絡層只把分組發送到目的主機,但是真正通信的並不是主機而是主機中的進程。傳輸層提供了進程間的邏輯通信,傳

原创 圖論算法(一)深度優先搜索與廣度優先搜索

深度優先搜索與廣度優先搜索 圖論基礎知識 圖是由一組頂點和一組能夠將兩個頂點相連的邊組成的(可以無邊,但是至少包含一個頂點): 一組頂點: 通常用V(vertex)表示頂點集合 一組邊: 通常用E(edge)表示邊集合 圖

原创 淺析樹結構(三)紅黑樹

淺析樹結構之紅黑樹 首先先來了解一下紅黑樹的五個性質 每個結點非紅即黑。 根結點是黑的。 每個葉結點(這裏葉節點指的是NULL結點)都是黑的。 如果一個結點是紅的,那麼它的兩個兒子都是黑的。 對於任意結點而言,其到樹末端即NUL

原创 Redis面試相關

什麼是Redis? Redis是一個基於內存的高性能key-value數據庫 Redis數據類型 string:最基本的數據類型,二進制安全 hash:String元素組成的字典,適合用於存儲對象 list:列表,按照Strin

原创 分佈式事務

分佈式事務 分佈式事務就是一個大的操作由不同的小操作組成,這些小的操作分佈在不同的服務器上,且屬於不同的應用,分佈式事務需要保證這些小操作要麼全部成功,要麼全部失敗。本質上來說,分佈式事務就是爲了保證不同數據庫的數據一致性。 CA