原创 數據庫索引的基石----B樹

數據結構相對來說比較枯燥, 我儘量用最易懂的話,來把B樹講清楚。學過數據結構的人都接觸過一個概念二叉樹,簡單來說,就是每個父節點最多有兩個子節點。爲了在二叉樹上更快的進行元素的查找,人們通過不斷的改進,從而設計出平衡二叉查找樹,也就是這個樣

原创 數據庫事務併發產生的問題以及事務的隔離級別

之前我們談到過,數據庫通過調整事務之間的隔離級別來提高事務的性能。那麼接下來,我們來首先說說事務之間可能互相遇到的問題。 大家都知道事務只有提交後,纔會真正的持久化到硬盤,倘若出現出現了回滾的操作,則事務所有操作的影響都會被回退掉。那麼假若

原创 數據庫事務以及事務的四個特性

如果你是一名後臺程序員開發,那麼你一定或多或少的接觸過事務。因爲相對於高併發,且業務有一定複雜性的系統來說,事務是一定需要的,而且是必須的。他可以幫助我們將若干不同的子任務當成一個整體來完成,以保證整個業務的正確性。舉個簡單的例子:在七夕這

原创 看起來很唬人,然而卻簡單實用的CAP理論

在做分佈式系統開發時,我們經常會或多或少的聽到CAP理論、或者是處理節點間數據一致性的問題。但CAP理論究竟是什麼呢?CAP理論很簡單,但卻是很多軟件設計的宏觀指導,因此也有人將之稱爲架構師必須掌握的理論之一。鑑於理論的東西相對來說比較抽象

原创 JVM GC-----2、垃圾對象的標記思路(一)

在上一篇文章中,我介紹了關於GC機制中,GC在確認垃圾對象後,是如何回收這些垃圾對象的幾種算法。現在介紹下GC機制一般是如何定位(或者叫做標記)出這些垃圾對象的。我們先來問下自己,如何判介紹了斷一個對象可以被回收。答案很簡單也很直白。這個對

原创 JVM GC-----3、垃圾對象的標記思路(二)

在上一篇文章中,介紹了在GC機制中,GC是以什麼標準判定對象可以被標記的,以及最有效最常用的可達性分析法。今天介紹另外一種非常常用的標記算法,它的應用面也相當廣泛。這就是:引用計數法 Reference Counting  這個算法的本質,

原创 JVM GC-----4、finalize()方法

 finalize()方法是Object類中定義的protect方法。每一個類都可以重寫該方法,給出自己的實現。當類在被回收期間,這個方法就可能會被調用到。 爲什麼說可能?這是由於finalize()的調用時機甚至是否會被調用到都存在着太多

原创 Java內存模型及Java關鍵字 volatile的作用和使用說明

先來看看這個關鍵字是什麼意思:volatile  [ˈvɒlətaɪl] adj. 易變的,不穩定的; 從翻譯上來看,volatile表示這個關鍵字是極易發生改變的。volatile是java語言中,最輕量級的併發同步機制。這個關鍵字有如下

原创 利用PostMan 模擬上傳/下載文件

我們經常用postman模擬各種http請求。但是有時候因爲業務需要,我們需要測試上傳下載功能。其實postman也是很好支持這兩種操作的。 一、上傳文件: 1、打開postman 選擇對應request類型,以及url 2、選擇body

原创 Java中的Lambda表達式

Lambda來源於希臘字母入,發音爲  /'læmdə/對高數有所瞭解的人都知道λ用於聲明一個數學邏輯系統,表示根據XX的輸入參數,會返回某個Y結果。這正是編程語言中函數(方法)的意思。因此Lambda表達式在編程語言中說白了就是指的一個方

原创 設計模式之Jdk動態代理 設計模式之代理模式

什麼是動態代理呢?就是在java的運行過程中,動態的生成的代理類。(爲了更熟悉的瞭解動態代理,你必須先熟悉代理模式,可點擊設計模式之代理模式 閱讀)我們知道java屬於解釋型語言,是在運行過程中,尋找字節碼文件從而實現類加載的。但是字節碼文

原创 代理模式

代理模式英文名叫Proxy Pattern 看下Proxy的含義 [ˈprɑ:ksi] n.代表權;代理人,代替物;委託書; 主要表達的就是代表、代替、委託的意思。 我對這個模式的理解是這樣的: 一個服務或者是一個功能,一個對象。由於某種自

原创 JVM內存結構---《深入理解Java虛擬機》學習總結

Java虛擬機在執行Java程序的過程中會把它所管理的內存劃分爲若干個不同的數據區域。這些區域的用途各不相同,同時也依據着各自的執行規則,獨立的創建和銷燬數據。 虛擬機內存的劃分,如圖所示: 線程之間互相獨立的區域有: 虛擬機棧 、本地方

原创 JVM GC-----2、垃圾標記算法(一)

在上一篇文章中,我介紹了關於GC機制中,GC在確認垃圾對象後,是如何回收這些垃圾對象的幾種算法。現在介紹下GC機制一般是如何定位(或者叫做標記)出這些垃圾對象的。我們先來問下自己,如何判介紹了斷一個對象可以被回收。答案很簡單也很直白。這個對

原创 HashTable的故事----Jdk源碼解讀

HashTable的故事 很早之前,在講HashMap的時候,我們就說過hash是散列,把...弄碎的意思。hashtable中的hash也是這個意思,而table呢,是指數據表格,也就是說hashtable的本意是指,一份被數據被打散,分