原创 JDK源碼學習之一lang包

JAVA編程思想,第一章,對對象的概念,以及訪問權限的有了深入理解 JDK,看到Math Character類的of方法,這裏用到了二分查找法 public static UnicodeBlock of(int codePoint

原创 JDK源碼學習之前言

最近工作上的事情不是很多,感覺對自己的提升不是很高。 在組內各位大神的推薦下,還是去看下JDK的源碼提升下自己的java基礎知識,主要學習的是JDK的源碼、配合java編程思想一起學習。 近期目標,把JDK的工具類的方法學習下,後期配合j

原创 JAVA對象的值與引用

JAVA編程思想,最近主要學習對象和引用的關係。 在內存中,引用主要存放在堆棧中,而JAVA對象主要存放在堆中。 在堆棧中方便管理儲存分配與清理,而在堆中的數據,編譯器並不需要知道其存活的週期,有JVM的垃圾回收機制進行統一管理。   基

原创 架構設計系列(一)——架構設計概述

架構設計概述架構的目的架構設計參考點架構設計常見誤區 架構的目的 架構設計的主要目的是爲了解決軟件系統複雜度帶來的問題。 架構設計參考點 性能; 可擴展性; 可用性; 安全性; 成本; 規模。 架構設計常見誤區 並沒有完美的架構

原创 秒殺系統設計思路

秒殺系統什麼是秒殺系統?業務特點設計原則具體方案熱點隔離動靜分離讀數據的最終一致性寫數據,分層校驗寫數據,“削峯填谷”寫數據,限流保護寫數據,強一致性校驗提高下單成功率參考文檔 什麼是秒殺系統? 秒殺的場景一般都是商家以促銷、預熱等活

原创 分佈式緩存原理——一致性hash算法(hash環)、Hash槽

一、一致性哈希算法:一種特殊的哈希算法,目前主要應用於分佈式緩存當中,可以有效地解決分佈式存儲結構下動態增加和刪除節點所帶來的問題。 一致性Hash算法是對2^32取模,2^32個點組成的圓環稱爲Hash環。根據服務節點的IP或者機器名稱

原创 MongoDB、ElasticSearch、Redis、HBase比較

總結 MongoDB、ElasticSearch、Redis、HBase,以上四種數據庫是當今NoSQL中最火爆的幾款,掌握了它們,你基本就能cover住互聯網開發中的絕大多數數據存儲需求。這裏還想強調的一點是,如同買衣服一樣,沒有最

原创 如何保證數據最終一致性(分佈式事務)

分佈式事務種類 按照實現原理分主要有三類:傳統事務型、事件通知型、補償型。 傳統事務型(不適用高併發場景,鎖定資源較多): 兩階段提交(2PC) 三階段提交(3PC) 事件通知型: 可靠消息實現模式 最大努力通知模式 補

原创 什麼是NoSQL

NoSQL簡介什麼是NoSQLNoSQL的特點NoSQL的優點/缺點關聯產品(根據CAP定理衍生)鏈接 什麼是NoSQL NoSQL,指的是非關係型的數據庫。NoSQL有時也稱作Not Only SQL的縮寫,是對不同於傳統的關係型數

原创 jvm學習筆記(1)——java虛擬機內存區域

一、java內存區域:      1、程序計數器(線程私有):     內存中較小的內存空間,可以當做當前線程所執行字節碼的行號指示器。如分支、循環、跳轉、異常處理、線程恢復都需要依賴這個計數器完成。 2、java虛擬機棧(線程私有):

原创 jvm學習筆記(3)——java對象的內存分配和對象的回收(GC)

引言:         之前的文章已經提過,java對象實例是存放在堆上的,至於是在伊甸區、存活區還是老年區,這些都是從對象回收(GC)角度來進行的邏輯劃分。所以我們先說對象的回收(GC),然後再依據GC的策略來說明新的對象具體在哪個區生

原创 jvm學習筆記(4)——jvm配置調優

jvm相關配置參數:     -server //開啓服務端模式,虛擬機啓動慢,但運行更加穩定。     -Xms1024m -Xmx1024m  //JVM堆內存最小值(初始值),堆內存最大值。優化:建議設置爲物理內存的1/4,建議設置

原创 jvm學習筆記(2)——java對象的內存佈局

一、內存佈局:      一個java對象在內存中可分爲3個區域:對象頭(Header)、實例數據(Instance Data)、對齊填充(Padding)。 對象頭(兩部分): 對象自身運行時的數據。如哈希碼、GC分代年齡、鎖狀態標誌

原创 多線程知識點整合

一、什麼是線程?     線程是程序執行流的最小單位。 二、什麼是進程?進程與線程的關係?     進程是系統分配資源的最小單位。進程與線程的關係,是一對多的關係,一個進程可以包含多個線程。屬於同進程的線程們,共享進程的資源空間(進程的全

原创 抽象類和接口的區別

一、表象形態上: 抽象類可以給出一些方法的實現,接口卻不可以; 抽象類的抽象方法可以被子類部分實現,接口卻必須全部實現; 一個類只能繼承一個抽象類,但卻可以實現多個接口。 二、設計思想上: 類是對對象的抽象,抽象類是對類的抽象;接口是對方