原创 緩存溢出

緩存溢出(Buffer overflow),是指在存在緩存溢出安全漏洞的計算機中,攻擊者可以用超出常規長度的字符數來填滿一個域,通常是內存區地址。在某些情況下,這些過量的字符能夠作爲“可執行”代碼來運行。從而使得攻擊者可以不受安全

原创 IP協議詳解

1. IP協議 1.1 概念 IP協議是TCP/IP協議簇中的核心協議,也是TCP/IP的載體。所有的TCP,UDP,ICMP及IGMP數據都以IP數據報格式傳輸。 IP提供不可靠的,無連接的數據傳送服務。 不可靠指它不能保證I

原创 設計模式--工廠模式

工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 在工廠模式中,我們在創建對象時不會對客戶端暴露創建邏輯,並且是通過使用一個共同的接

原创 volatile簡介

Volatile是java提供的輕量級同步機制,比sychronized開銷要小. 如果要使用 volatile 了,那肯定是在多線程併發的環境下(原子性、可見性、有序性).被volatile定義的變量,系統每次使用到它的時候都是

原创 ZAB--Zookeeper底層實現

1 什麼是 ZAB 協議? ZAB 協議介紹 • ZAB 協議全稱:Zookeeper Atomic Broadcast(Zookeeper 原子廣播協議)。 • Zookeeper 是一個爲分佈式應用提供高效且可靠的分佈式協

原创 設計模式--裝飾器模式

裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬於結構型模式,它是作爲現有的類的一個包裝。 這種模式創建了一個裝飾類,用來包裝原有的類,並在保持類方法簽名完

原创 Redis 命令(十一) 之 Redis 連接

Redis 命令 之 Redis 連接 Redis 連接命令主要是用於連接 redis 服務 實例 以下實例演示了客戶端如何通過密碼驗證連接到 redis 服務,並檢測服務是否在運行: redis 127.0.0.1:6379>

原创 你必須知道的計算機網絡的基礎認識!

1 背景知識 1.1 什麼是計算機網絡 計算機網絡,是指地理位置不同,具有獨立功能的計算機及周邊設備,通過在網絡操作系統中連接的通信線路,管理和協調網絡管理軟件和網絡通信協議,實現計算機系統的資源共享和信息傳輸的計算機系統。 計算

原创 Redis 高級(三) 之 Redis 性能測試

Redis 高級 之 Redis 性能測試 Redis 性能測試是通過同時執行多個命令實現的 語法 redis 性能測試的基本命令如下: redis-benchmark [option] [option value] 注意:該命

原创 劍指offer--從尾到頭打印鏈表

題目描述 輸入一個鏈表,按鏈表從尾到頭的順序返回一個ArrayList。 示例代碼: /** * public class ListNode { * int val; * ListNode nex

原创 HTTP協議

1. 概念 在前面的文章,我們知道TCP/IP四層模型中,下三層是主要負責數據的傳輸處理,但是沒有涉及到解析,關於解析主要由應用層來處理。 HTTP協議是應用層協議,是一個屬於應用層的面向對象的協議,由於其間接,快速的方式,適用於

原创 MySQL索引詳解及優化策略

1. 索引介紹 索引是存儲引擎用於快速查找記錄的一種數據結構。索引優化是對查詢性能優化最有效的手段。 索引可以包含一個或多個列的值。如果索引包含多個列,那麼列的順序也十分重要,因爲MySQL只能高效地使用索引的最左前綴列。 1.1

原创 二叉查找樹、平衡二叉樹、B樹、B+樹

B+樹索引是B+樹在數據庫中的一種實現,是最常見也是數據庫中使用最爲頻繁的一種索引。B+樹中的B代表平衡(balance),而不是二叉(binary),因爲B+樹是從最早的平衡二叉樹演化而來的。在講B+樹之前必須先了解二叉查找樹、

原创 MySQL索引底層的數據結構與算法

既然我們要探討索引,那麼我們就應該弄清楚索引是什麼 1. 索引是什麼? MySQL官方給索引的定義爲:索引是幫助MySQL高效獲取數據的排好序的數據結構(索引是數據結構) 1.1 索引的本質 我們知道,數據庫查詢是數據庫的最主要功

原创 JDBC的反射,以及作用

通過反射com.mysql.jdbc.Driver類,實例化該類時,會調用該類的靜態代碼塊,該代碼塊會去DriverManager類中註冊自己,DriverManager管理所有已註冊的驅動類,當調用DriverManager.g