原创 JVM:編譯加載與自定義類加載器

編譯機制 編譯主要是把 .java 文件轉換爲 .class 文件。其中轉換後的 .class 文件就包含了元數據,方法信息等一些信息。比如說元數據就包含了 Java 文件中聲明的常量,也就是我們所說的常量池。 類加載機制 JVM

原创 JVM:垃圾回收問題

在什麼時候觸發垃圾回收 由於對象進行了分代處理,因此垃圾回收區域、時間也不一樣。GC有兩種類型:minor GC 和Full GC。 minor GC 一般情況下,當新對象生成,並且在Eden申請空間失敗時,就會觸發minor

原创 JVM:內存溢出問題

Java虛擬機規範規定JVM的內存分爲了好幾塊,比如堆,棧,程序計數器,方法區等,而Hotspot jvm的實現中,將堆內存分爲了兩部:新生代,老年代。在堆內存之外,還有永久代,其中永久代實現了規範中規定的方法區,而內存模型中不同

原创 MySQL數據庫主主

環境:centos6.5,mysql5.5.25 兩臺機器:第一臺192.168.2.222,第二臺192.168.2.111 MySQL主主,分兩步配置,第一步爲主從,第二步爲相反的主從。 配置222爲主,111爲從 修改my.

原创 MySQL中的隔離級別和悲觀鎖及樂觀鎖示例

MySQL的事務支持 MyISAM:不支持事務,用於只讀程序提高性能 InnoDB:支持ACID事務、行級鎖、併發 隔離級別(主要對於InnoDB而言) 隔離級別決定了一個session中的事務可能對另一個session的

原创 深入理解Redis主鍵失效原理及實現機制

作爲一種定期清理無效數據的重要機制,主鍵失效存在於大多數緩存系統中,Redis 也不例外。在 Redis 提供的諸多命令中,EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT 以及 SETEX 和 PSETEX 均

原创 設計模式—代理模式

代理模式 代理模式就是給某一個對象創建一個代理對象,有這個代理對象控制對原對象的引用,而創建這個代理對象後可以在調用原對象時增加一些額外的操作。 普通代理 接口類Sourceable.java public interface

原创 redis命令總結

來自:http://redisdoc.com/ centos命令: redis-cli #連接redis KEYS a b c #關鍵字查找 flushall #清空所有庫 flushdb #刪除這個db下的 J2EE中使用

原创 類加載機制

加載 類加載指的是將類的class文件讀入內存,併爲之創建一個java.lang.Class對象,作爲方法區這個類的數據訪問的入口。 也就是說,當程序中使用任何類時,系統都會爲之建立一個java.lang.Class對象。具體包括

原创 設計模式—策略模式

策略模式 策略模式定義了一系列算法,並將每個算法封裝起來,使他們可以相互替換,且算法的變化不會影響到使用算法的客戶。需要設計一個接口,爲一系列實現類提供統一的方法,多個實現類實現該接口,設計一個抽象類(可有可無,屬於輔助類),提

原创 JVM:內存結構和相關參數

Java 整體內存結構 JVM內存區域分爲程序計數器,虛擬機棧,本地方法棧,方法區,堆 程序計數器:存放下一條指令在方法中的偏移量。線程私有,即每個線程都會有一個。也可以看做是線程所執行的字節碼的行號指示器,字節碼解釋器的工作就

原创 redis使用watch秒殺搶購思路

1、使用watch,採用樂觀鎖 2、不使用悲觀鎖,因爲等待時間非常長,響應慢 3、不使用隊列,因爲併發量會讓隊列內存瞬間升高 測試代碼: import java.util.concurrent.ExecutorService;

原创 Keepalived構建雙主MySQL

MySQL主主:http://blog.csdn.net/chengshiep/article/details/50943221 兩臺服務器 MySQL-master1(主):192.168.2.202 MySQL-maste

原创 Java多線程之concurrent包(六)——CountDownLatch

CountDownLatch是減計數方式,計數==0時釋放所有等待的線程; CountDownLatch當計數到0時,計數無法被重置; CountDownLatch每次調用countDown()方法計數減一,調用await()方法

原创 Redis 配置文件詳解

(基於Redis 2.6) 基礎部分設置: daemonize no #默認情況下redis 不是以守護進程的模式運行。 pidfile /var/run/redis.pid #在守護進程模式下,pid進程號文件路徑的存儲位置 p