原创 fopen中文件的幾種打開模式比較

r:只讀.    w:只寫,有create和truncate語義.    r+:update模式,可以讀和寫,要求文件必須存在,且沒有truncat

原创 linux的文件描述符集fd_set的實現方式

通過賦值語句可以在兩個文件描述符集之間進行賦值,例如可以這樣寫: fd_set readset,tmpset; FD_ZERO(&readset); FD_ZERO(&tmpset); FD_SET(listener,&tmp

原创 CGI介紹

CGI的基本概念: CGI程序放置在服務器上,當客戶發送http請求到服務器時,服務器會調用執行相應的CGI程序完成相應的功能,最終再將執行結果以html的形式返回給客戶端。 CGI程序的輸入和輸出: CGI程序的輸入來自客戶端的表單,當

原创 單例模式

單例模式大家並不陌生,也都知道它分爲什麼懶漢式、餓漢式之類的。但是你對單例模式的理解足夠透徹嗎?今天我帶大家一起來看看我眼中的單例,可能會跟你的認識有所不同。 下面是一個簡單的小實例: [java] view plain 

原创 動態代理

動態代理 靜態代理不適用的場景 當項目中有大量的類和方法需要同類型的代理時,靜態代理就不太適用了,因爲你不可能爲每個類編寫一個對應的代理類。 有時候無法提前獲知要代理的類有哪些,例如第三方框架Spring,要爲你類做代理,只能在運

原创 代理模式

代理模式 解決的問題:控制被代理對象的訪問,簡單來說就是在原有類的方法上增加一些行爲。 代理模式又分爲靜態代理和動態代理,靜態代理需要提前編寫代理類,動態代理在運行時生成代理類,此篇只介紹靜態代理。 靜態代理 以上爲代理模式結構圖,P

原创 適配器模式

適配器使用場景 當系統依賴的接口提供了需要的功能,但是接口簽名並不是完全匹配時,就可以使用適配器模式,將外部接口橋接到內部系統上。 代碼實例 依賴接口 public interface RemoteCallBackA {     void

原创 Mac下使用brew

brew 又叫Homebrew,是Mac OSX上的軟件包管理工具,能在Mac中方便的安裝軟件或者卸載軟件, 只需要一個命令, 非常方便 brew類似ubuntu系統下的apt-get的功能   閱讀目錄 安裝brew使用brew

原创 使用pip安裝MySQL-python模塊

在python程序中連接mysql會用到MySQLdb,而MySQLdb是在MySQL-python這個模塊中。在安裝了pip後,可以使用 pip install MySQL-python嘗試安裝,一般會碰到EnvironmentErr

原创 git rebase

轉自:http://gitbook.liuhui998.com/4_2.html rebase 假設你現在基於遠程分支"origin",創建一個叫"mywork"的分支。 $ git checkout -b mywork orig

原创 裝飾者模式

解決的問題 在不改變原有對象結構情況下,爲類動態增加功能,避免了通過繼承方式進行功能擴充導致的類體系臃腫 ,且可以採用任意順序組織這些功能。 裝飾者模式類圖 Component是要被裝飾的接口,ConcreteComponent是具體被

原创 Java遠程調試原理與運用

Java遠程調試的原理是兩個VM之間通過debug協議進行通信,然後以達到遠程調試的目的。兩者之間可以通過socket進行通信。 首先被debug程序的虛擬機在啓動時要開啓debug模式,啓動debug監聽程序。jdwp是Java De

原创 字符編碼

轉自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 今天中午,我突然想搞清楚Unicode和UTF-8之間的關係,於是就開始在網上查資料。 結

原创 mac下安裝和使用pip

安裝 pip是python的包管理工具,在Python2.7的安裝包中,easy_install.py是默認安裝的,而pip需要我們手動安裝。 執行命令: sudo easy_install pip即可安裝pip 使用 安裝

原创 python字符串替換

s='123{hh}'.format(hh='jjj') print(s)輸出123jjj