原创 Java的三種代理

一、靜態代理 實現方法:代理對象與目標對象實現統一的接口或者繼承統一的父類。 demo: public interface IService { public void method(String argument);

原创 關於DOM和SAX

DOM:基於文檔驅動 需要加載整個文檔,並用樹狀結構存儲在內存中。 可隨機訪問元素節點,效率較高。 適用於修改文檔。 不適用於大文件,容易導致內存溢出。 SAX:基於事件驅動 按順序讀取文件,不會一次性全部讀取。 只能按順序讀取文

原创 關於Java的設計模式

一、設計原則 開閉原則:對擴展開放,對修改關閉。 里氏代換原則:父類可以被子類代替,即繼承。 依賴倒轉原則:針對接口編程,依賴於抽象而不依賴於具體。 接口隔離原則:使用多個隔離的接口來降低耦合。 迪米特法則:一個實體應當儘量少地與其它實

原创 關於SpringCloud

服務註冊與發現:eureka。 服務消費:Feign。 斷路器:在一個請求需要調用多個服務的場景下,較低層的服務如果出現故障,會導致連鎖故障。當對一個服務的調用的不可用達到一個閾值後,斷路器打開。可以避免連鎖故障,fallback方法返

原创 關於MySQL的Innodb引擎

一、特性 Innodb引擎提供了對數據庫ACID事務的支持,並且還提供了行級鎖和外鍵的約束。 可以利用數據日誌來對數據進行恢復。 會在內存中建立緩衝池,用於緩衝數據和索引。 批量併發執行update語句時效率較高。 不支持全文搜索 啓動

原创 linux幾種常見的文件內容查找和替換命令

vi命令下的查找和替換 vi下的查找 /pattern:向下查找 ?pattern:向上查找 n:繼續向同一方向查找 N:繼續向相反方向發展 /^name:查找以name開始的行 /name$:查找以name結束的行 /

原创 計算1-N中第K小的數字(按字典序排序)

public static int calK(int n, int k) { if (k > n) { return 0; } int target = 1;

原创 關於MySQL索引

所有存儲引擎支持每個表至少16個索引,總索引長度至少爲256字節。 唯一索引 聯合索引 全文索引 索引只能提高查詢效率;索引過多,反而會降低insert、update和delete性能。 複合索引中只要有一列是NULL值,則該列對應的聯

原创 關於synchronized關鍵字的用法

關於synchronized關鍵字的用法 修飾代碼塊,作用的對象是調用這個代碼塊的對象 修飾方法,作用的對象是調用此方法的對象 修飾靜態方法,作用的對象是此類的所有對象 修飾類,作用的對象是此類的所有對象

原创 git常用命令

git的常用命令 git log –filename —查看某一文件的修改歷史

原创 hashcode()與equals()

hashcode()與equals() 1、兩者的關係 equals()相等的兩個對象hashcode() 一定相等 equals()不等的兩個對象hashcode()有可能相等 hashcode()是用來查找元素存儲位置的索引函數 e

原创 關於kafka的原理和使用

一、kafka的特性 高吞吐量,低延遲:kafka每秒可以處理幾十萬條信息,它的延遲最低只有幾毫秒。每個topic可以分爲多個partition,consume group 對partition進行消費。 可擴展性:kafka集羣支持熱

原创 關於數據庫事務的分類和特性

一、特性 原子性:事務中的所有操作要麼全部成功,要麼全部失敗。 持久性:事務一旦提交,對數據庫的影響就是持久性的。 一致性:事務必須使數據庫從一個一致性狀態轉換爲另一個一致性狀態。也就是事務執行前後狀態保持一致。 隔離性:多個併發事務之

原创 完全二叉樹結構創建小頂堆

public static void heapSort(int[] A) { int len = A.length; int start = len / 2 - 1; for (i

原创 關於mina框架

一、適用場景: Mina是基於TCP/IP、UDP/IP協議棧的通信框架。適用於快速開發高性能、高擴展性的網絡應用。底層依賴的主要是Java NIO庫,上層提供的是基於事件的異步接口。 二、整體結構: IoService:最底層服務,負