原创 設計模式之---中介者模式

有時候,幾個對象之間會相互影響,我們把這些會相互影響的對象叫做”同事“,如果我們顯示地去執行他們之間的相互影響的話,代碼會變得很臃腫並且難以維護。所以我們引入中介者來幫我們維護他們之間的相互關係,這樣就減少了系統耦合。 比如,在一個能量

原创 JVM的BUG!?Java類靜態初始化裏啓線程,居然導致main函數阻塞!!!

先來看這個代碼是咋寫的 public class Lazy { public static boolean init = false; static { Thread t = new Thread(()

原创 《深入理解計算機系統》1.3:計算機系統漫遊

目錄 系統之間利用網絡通信 重要主題 Amdahl定律 併發和並行 計算機系統中抽象的重要性 系統之間利用網絡通信 現代系統經常通過網絡和其他系統連接到一起,從一個單獨的系統來看,網絡可視爲一個IO設備。當系統從主存複製一串字節到網絡適配

原创 《深入理解計算機系統》1.2:計算機系統漫遊

目錄 高速緩存至關重要 存儲器層次結構 操作系統管理硬件 進程 虛擬內存 文件 高速緩存至關重要 hello程序的機器指令最初是存放在磁盤上,程序加載時,它們被複制到主存;當處理器運行時,指令又從主存複製到處理器。相似地,數據串"hell

原创 Flyway簡介與應用(SpringBoot整合Flyway)

目錄 什麼是Flyway? 爲什麼要使用Flyway? SpringBoot集成Flyway 基本概念 1.Versioned Migrations 2.Repeatable Migrations 使用 其它 什麼是Flyway? Fly

原创 十大經典排序算法小結

排序可以說是套路最多的基本算法了,今天來了興致,那就總結一下這十大排序算法吧。 冒泡法: 這可以算是知名度最高的算法之一了吧,可以說不會這個算法都不好意思說自己寫過代碼。冒泡排序是最簡單的排序之一了,其大體思想就是通過與相鄰元素的比較和交

原创 Executor框架相關類及原理

 在併發編程中,經常會用到Executor這個框架,Executor就是Runnable和Callable的調度容器,今天我就來總結一下幾個常用的類及相關原理。 Runnable 這個在多線程裏幾乎無所不在,連Thread類都是它的實現類

原创 《CleanCode-代碼整潔之道》讀書筆記

一本非常經典的書,讀了之後,我感覺在如何寫出簡潔優雅的高質量代碼方面對我很有啓發。書中從各個方面,列舉了許多原則與標準,但我們寫代碼的時候,不可能將這些東西都清楚記着並時刻提醒自己不能“違規”,這樣就如同負重前行,不僅走得慢,還會累死。

原创 2PC,3PC,Paxos,ZAB

    首先我們要了解,什麼是分佈式一致性問題?    這個問題,我還真沒找到明確定義。不過我個人的理解是:在一個分佈式系統中,如何使多方達到一致性狀態的問題,包括不同數據副本之間的一致性,數據修改的一致性,決策的一致性等等。關於這個問題

原创 Java中的IO技術簡介

Linux網絡IO模型簡介1.阻塞IO模型2.非阻塞IO模型3.IO複用模型4.信號驅動IO模型5.異步IO關於這5種IO模型,這篇博文寫的不錯:https://blog.csdn.net/tjiyu/article/details/52

原创 dijkstra算法模板(優先隊列優化)

dijkstra算法是由荷蘭計算機科學家狄克斯特拉於1959 年提出的,因此又叫狄克斯特拉算法。是從一個頂點到其餘各頂點的最短路徑算法,解決的是有 向圖中最短路徑問題。迪傑斯特拉算法主要特點是以起始點爲中心向外層層擴展,直到擴展到終點爲止

原创 分佈式入門:從集中式到分佈式

    本文主要想簡單介紹一下爲什麼人們逐漸放棄了集中式,轉向分佈式以及分佈式的一些特點,分佈式存在的一些問題。集中式與分佈式    既然講到分佈式,我們首先講一講集中式。曾經很長一段時間,由於大型主機強勢地發展,集中式纔是主流。大型機擁

原创 自主實現RPC工具-myrpc

    源碼位置:https://github.com/AsPhilosopher/myrpc    源碼下載:https://download.csdn.net/download/jobsandczj/10309380    RPC(R

原创 阿里開發規範終極版整理(精簡)

Java開發規範 命名 【規範】類名使用UpperCamelCase 風格,必須遵從駝峯形式,但以下情形例外: ( 領域模型的相關命名 )DO / BO / DTO / VO 等。 正例: MarcoPolo / UserDO / Xml

原创 Java併發編程-活躍度問題

在講問題前,我先說明一下什麼是活躍度? 一個併發應用及時執行的能力稱作活躍度。 我主要講死鎖問題,順帶介紹一下飢餓,弱響應性和活鎖。 死鎖 死鎖這個詞大家都聽過,我先來羅列一下產生死鎖的四個必要條件: (1) 互斥條件:一個資源每次只能