原创 React 入門-redux 和 react-redux

React 將頁面元素拆分成組件,通過組裝展示數據。組件又有無狀態和有狀態之分,所謂狀態,可以簡單的認爲是組件要展示的數據。React 有個特性或者說是限制單向數據流,組件的狀態數據只能在組件內部修改,對於其他組件是只讀的,想要修改只能通過

原创 Oracle RedoLog-二進制格式分析,文件頭,DML,DDL

上篇文章,簡單介紹了 RedoLog 是什麼,以及怎麼從 Oracle Dump 二進制日誌。接下來,分析下 Redo Log 二進制文件的格式,主要包括:文件頭,重做日誌頭,DML-INSERT 操作,DDL-CREATE 操作。 Red

原创 Oracle RedoLog-基本概念和組成

Oracle 數據庫恢復操作最關鍵的依據就是 redo log,它記錄了對數據庫所有的更改操作。在研究如何提取 redolog 中 DML 操作的過程可謂一波三折,因爲介紹 redolog 結構細節的資料實在太少了,不過好在最後大致理清了它

原创 React 入門-寫個 TodoList 實例

React 是一個用於構建用戶界面的 JavaScript 庫,主要特點有: 聲明式渲染:設計好數據和視圖的關係,數據變化 React 自動渲染,不必親自操作DOM 組件化:頁面切分成多個小部件,通過組裝拼成整體頁面,利於代碼複用 本文

原创 Bootstrap4默認樣式不對胃口?教你使用NPM+Webpack+SASS來定製

Bootstrap 是一個流行的前端樣式庫,可以方便快速的構建應用,但默認樣式可能不盡人意,本文就介紹如何使用 NPM, Webpack, SASS 針對它的源碼來定製自己的主題。版本使用的是 Bootstrap v4.3.1。 本文提供了

原创 Java 內存模型和 JVM 內存結構真不是一回事

這兩個概念估計有不少人會混淆,它們都可以說是 JVM 規範的一部分,但真不是一回事!它們描述和解決的是不同問題,簡單來說, Java 內存模型,描述的是多線程允許的行爲 JVM 內存結構,描述的是線程運行所設計的內存空間 JVM 是什麼

原创 還在爲垂直居中苦惱?CSS 佈局利器 flexbox 輕輕鬆鬆幫你搞定

傳統的 CSS 佈局方式是基於盒模型(它是根據盒子與父盒子以及兄弟盒子的關係確定大小和位置的算法),實現時依賴於 block, inline, table, position, float 這些屬性,但對於一些特殊佈局不易實現,比如垂直居中

原创 紅黑樹這個數據結構,讓你又愛又恨?看了這篇,妥妥的征服它

紅黑樹是一個比較複雜的數據結構,相信很多人也只知其名而不知其意,因爲理解它的原理確實需要花費一定的功夫。之所以寫這篇文章,也是爲了更好的理解 Java 中 TreeMap 的源碼。 寫之前,搜了下網上的文章,說實話,看完有點懵,大部分一上來

原创 TreeMap 還能排序?分析下源碼就明白了

Java 中的 Map 是一種鍵值對映射,又被稱爲符號表或字典的數據結構,通常使用哈希表來實現,但也可使用二叉查找樹、紅黑樹實現。 HashMap 基於哈希表,但迭代時不是插入順序 LinkedHashMap 擴展了 HashMap,維護

原创 模擬實現 Tomcat 的核心模塊:NIO,HTTP,容器和集羣

如果你想看 Tomcat 源碼但又無從入手,不妨從這個項目開始,代碼量不多,但包含了 Tomcat 的核心處理流程,並且源碼中有相當豐富的註釋。相信通過此項目你能瞭解: NIO 基本編程、HTTP 協議的本質、基本的單元測試 Tomcat

原创 「福利」Java Swing 編寫的可視化算法工程,包含樹、圖和排序

之前在整理《學習排序算法,結合這個方法太容易理解了》這篇文章時,發現了一個用 Java Swing 編寫的可視化算法工程,真心不錯!包含了常用數據結構和算法的動態演示,先來張圖感受下: 可以看到既有基本數據結構棧、隊列基於數組和鏈表的元素

原创 LinkedHashMap 的核心就 2 點,搞清楚,也就掌握了

HashMap 有一個不足之處就是在迭代元素時與插入順序不一致。而大多數人都喜歡按順序做某些事情,所以,LinkedHashMap 就是針對這一點對 HashMap 進行擴展,主要新增了「兩種迭代方式」: 按插入順序 - 保證迭代元素的順

原创 學習排序算法,結合這個方法太容易理解了

排序是一個經典的問題,它以一定的順序對一個數組或列表中的元素進行重新排序。而排序算法也是各有千秋,每個都有自身的優點和侷限性。雖然這些算法平常根本就不用自己去編寫,但作爲一個有追求的程序員,還是要了解它們從不同角度解決排序問題的思想。 學習

原创 注意這幾點,輕輕鬆鬆配置 Nginx + Tomcat 的集羣和負載均衡

Tomcat 集羣是當單臺服務器達到性能瓶頸,通過橫向擴展的方式提高整體系統性能的有效手段。Nginx 是一個高性能的 HTTP 和反向代理 web 服務器,可以通過簡單的配置實現 Tomcat 集羣的負載均衡。 本文使用的 Tomcat

原创 HashMap 源碼分析

HashMap 可以說是使用頻率最高的處理鍵值映射的數據結構,它不保證插入順序,允許插入 null 的鍵和值。本文采用 JDK8 中的源碼,深入分析 HashMap 的原理、實現和優化。首發於微信公衆號頓悟源碼. 1. 基本結構 HashM