原创 Linux設置環境變量

設置環境變量   一、 直接在shell執行export   設置完後只對當前終端有效, 其他終端獲取不到該變量       二、 編輯用戶主目錄下的.bash_profile文件, 這個文件定義的變量只對當前用戶有

原创 MySQL LOAD DATA INFILE

MySQL LOAD DATA INFILE LOAD DATA INFILE語句是MySQL中用來批量、快速導入數據的一種方式,和SELECT ... INTO OUTFILE 作用是相反的   一、完整語法 LOAD DATA [L

原创 Linux 註冊系統服務

Linux 註冊系統服務   像mysql,ssh這些我們都可以用service mysqld start類似的命令來啓動、關閉等,那我們如何把我們自己的程序也按照如此的方式來進行管理呢?   1.進入/etc/init.d,

原创 Java併發編程之異步Future機制的原理和實現

Java併發編程之異步Future機制的原理和實現           項目中經常有些任務需要異步(提交到線程池中)去執行,而主線程往往需要知道異步執行產生的結果,這時我們要怎麼做呢?用runnable是無法實現的,我們需要用

原创 Javassist實現動態代理

Javassist實現動態代理   動態代理模式簡述:之所以會出現代理這種模式就是因爲我們常有這麼一種需求:在被代理類的方法調用前後執行一些其它的邏輯,這些邏輯不適合由被代理類來實現,那這些邏輯誰來實現?當然是代理類。那代理類是誰?

原创 Java 實現基於Redis的分佈式可重入鎖

Java 實現基於Redis的分佈式可重入鎖 之前在 Java實現基於的Redis的分佈式鎖 這篇文章中,已經實現了加鎖的邏輯,但是有個缺點,就是不可重入,任何重入鎖的嘗試都會導致死鎖的發生,想了一下,這個問題可以解決。  

原创 Linux下用expect實現ssh自動登錄並執行腳本

Linux下用expect實現ssh自動登錄並執行腳本   expect不是系統自帶的,需要安裝:         yum install expect 裝完後纔可執行以下腳本。    ssh密碼認證的登陸腳本: She

原创 Java併發編程之volatile關鍵字的理解

Java併發編程之volatile關鍵字的理解          Java中每個線程都有自己的工作內存,類比於處理器的緩存,線程的工作內存中保存了被該線程使用到的變量的主內存的拷貝。線程讀寫變量都是直接在自己的工作內存中進行的,而何時

原创 WebSocket 協議

WebSocket 協議 WebSocket protocol 是HTML5一種新的協議。它實現了瀏覽器與服務器全雙工通信(full-duplex)。在這之前都是客戶端主動請求服務端,一請求一應答,很多時候實現消息更新都是採用ajax

原创 Java 可重入自旋鎖簡單實現

自旋鎖特點:1. 輕量級操作,無需掛起線程2. 特別吃CPU,如果線程在臨界區的操作比較耗時或者線程對臨界區的競爭很激烈,那還是老老實實用普通的鎖以下是Java的簡單實現public class SpinLock implements L

原创 MySQL 日誌

MySQL 日誌 概述 MySQL日誌記錄了MySQL服務器的各種行爲,MySQL中日誌有如下幾種: 類型 描述 Error Log 記錄 MySQL啓動,運行,停止過程 General Query Log  記錄客戶端的連接以及接

原创 JVM 棧幀

JVM 棧幀  一、棧幀   棧幀(Frame)是用來存儲數據和部分過程結果的數據結構,同時也被用來處理動態鏈接(Dynamic Linking)、方法返回值和異常分派(Dispatch Exception)。   棧幀隨着方

原创 簡單組合java.util.Map<K,V>實現Map<K,P,V>

簡單組合java.util.Map<K,V>實現Map<K,P,V>   java.util.Map<K,V>爲單鍵對單值,有時需要雙鍵對單值,因此基於Map<K,V>可以簡單實現一個Map<K,P,V>。   接口定義:

原创 MySQL 時間日期類型和相關函數

MySQL 時間日期類型和相關函數   一、時間日期類型 MySQL中的日期和時間類型 類型 字節 最小值 最大值 零值 DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59 0000

原创 Java實現基於Redis的分佈式鎖

Java實現基於Redis的分佈式鎖  單JVM內同步好辦, 直接用JDK提供的鎖就可以了,但是跨進程同步靠這個肯定是不可能的,這種情況下肯定要藉助第三方,我這裏實現用Redis,當然還有很多其他的實現方式。其實基於Redis實現