原创 java 啓動命令解析

前言      在看Btrace源碼的時候,瞭解到一些陌生的啓動命令參數,例如-Xbootclasspath等,之前也曾遇到過,但並沒有去進一步全面瞭解,在此則進行介紹。 簡介      Java 的啓動參數包括標準的參數(運

原创 開發問題總結(一)

下面是在利用JDK的Instrument來編寫調試工具的時候出現的一些問題總結   1、java.io.Console 類的讀取操作將會阻塞掉寫入操作,造成寫入操作不能異步進行。 原因是該類中加入了讀寫鎖。代碼如下: publi

原创 mysql 配置文件 詳解

mysqld程序--目錄和文件   basedir = path #使用給定目錄作爲根目錄(安裝目錄)。 character-sets-dir = path #給出存放着字符集的目錄。 datadir = path

原创 網絡編程-TCP筆記

    很久沒寫博客了,最近也看了不少書,看完了好像印象不深,還是回頭寫寫記錄下吧。。   1.TCP機制     TCP提供了可靠性 ,當TCP向另外一端發送數據時,它要求對端返回一個確認。如果沒有收到確認,TCP就自動重傳數據

原创 高性能Mysql-筆記

  1.Mysql 的邏輯架構 每個客戶端連接在服務器進程中都擁有自己的線程 , 每個連接所屬的查詢都會在指定的某個單獨線程中完成,這些線程輪流運行在某個 CPU 核心或者 CPU 上。服務器負載緩存線程,因此不需要爲每個新

原创 Java併發編程筆記摘要

    多線程設計的目的是爲了更多的榨取服務器硬件的性能,但是線程仍然會給運行時帶來一定程度的開銷。上下文切換——當調度程序臨時掛起當前運行的線程時,另 外一個線程開始運行——這在多個線程組成的應用程序中是很頻繁的,並且帶來巨大的系統開

原创 設計原則(Java 與模式-筆記 一)

  第二部分 面向對象的設計原則   如何同時提高一個軟件系統的可維護性(Maintainability)和可複用性(Reuseability)是面向對象的設計要解決的核心問題。 一個好的系統設計應該有如下的性質:可擴展性(Extens

原创 設計模式(Java 與模式-筆記 二)

一、創建模式 1、工廠模式 工廠模式專門負責將大量有共同接口的類實例化。工廠模式可以動態決定將哪一個類實例化,不必事先知道每次要實例化哪個類。   工廠模式有以下幾種形態:   (1)簡單工廠(Simple Factory)模式:又稱靜

原创 com.danga.MemCached 中key的中文問題

   在項目中用到了memcached 做緩存,在實際應用中發現spymemcached 客戶端在網絡狀態比較差是(大概延遲60ms左右)時的讀取超時現象比較嚴重,而且造成應用的內存被消耗盡了(用jmap 查看過,發現memcache 的

原创 java.util.concurrent 之LinkedBlockingQueue源碼分析

   LinkedBlockingQueue類 一個基於已鏈接節點的、範圍任意的 blocking queue。此隊列按 FIFO(先進先出)排序元素。隊列的頭部 是在隊列中時間最長的元素。隊列的尾部 是在隊列中時間最短的元素。新元素插

原创 java.util.concurrent 之ConcurrentHashMap 源碼分析

      最近有點想研究下java.util.concurrent 包下的一些類中的實現,在現實中也對這包裏的類應用不少,但都沒怎麼去深入理解,只是聽說裏面的實現在高併發中有不錯的性能。。接下將對裏面的幾個比較常用的類的源碼進行分析。。

原创 軟引用、弱引用、虛引用 總結

   在看‘深入JAVA虛擬機’垃圾收集這一章的時候瞭解有關對象的引用級別,在網上找了些資料總結備忘。(該文章大多內容爲多個網站的內容合併)   1、概述    在JDK1.2以前的版本中,當一個對象不被任何變量引用,那麼程序就無法再使用

原创 HTTP 協議介紹

引言                                         HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系統。它於1990年提出,經過幾年的 使用與發展,得到不斷地完

原创 Java 回調機制及其Spring 中HibernateTemplate的源碼分析

   在分析HibernateTemplate前,首先從網上了解下一些關於回調的一些概念。我相信在瞭解其原理實現的基礎上,可以更好的進行開發和擴展,關鍵得理解其思想。   軟件模塊之間總是存在着一定的接口,從調用方式上,可以把他們分爲三類

原创 log4j 配置

1. 配置文件    Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , … #配置日誌信息輸出目的地