原创 Thinking in Java -- 併發(一)

併發的多面性 基本的併發 定義任務 線程可以驅動任務,我們通過實現 Runnable 接口來提供,需要實現 Runnable 接口的 run() 方法。 package concurrency; /** * Create

原创 設計模式 —— 動態代理(Dynamic Proxy)

動態代理(Dynamic Proxy) 靜態代理的缺點: 靜態代理 是有缺點的,看下圖。 我們爲每個類實現代理,但代理的內容卻可能是相同的,比如一個項目中的日誌代理,對象緩存代理等等。爲每個類實現代理大大提高了代碼量,可能會

原创 使用 hsdis 查看 JIT 生成的彙編代碼

原文:使用hsdis查看jit生成的彙編代碼 感謝博主分享 背景 JVM 有 HotSpot引擎可以對熱代碼路徑進行有效的 JIT優化,大幅度提升計算密集代碼的性能。默認一個方法至少被調用10k次以上纔可能被JIT優化。 查

原创 設計模式 —— 抽象工廠模式(Abstract Factory)

抽象工廠模式(Abstract Factory) 上一篇文章中的工廠模式僅僅產生食物,如牛奶、糖。但如果不同城市的奶和糖加工製造和口味都是不同的。普通的工廠模式就無法滿足了,此時我們來看 抽象工廠模式 概念: 提供一個創建 一系

原创 實現一個 O(1) 查找的 LRU Cache

前幾天百度面試,當時讓實現一個 LRU Cache,要求 O(1) 完成查找。後來發現這個也可以用在自己簡易的 key-value 數據庫項目中。 簡單來說 LRU 是內存管理的一種算法,淘汰最近不用的頁。 O(1) 時間完成查找,那除了

原创 【Java併發編程】之二十:併發新特性—Lock鎖和條件變量(含代碼)

原文鏈接 簡單使用Lock鎖     Java 5中引入了新的鎖機制——java.util.concurrent.locks中的顯式的互斥鎖:Lock接口,它提供了比synchronized更加廣泛的鎖定操作。Lock接口

原创 四種常見的 POST 提交數據方式

原文鏈接https://imququ.com/post/four-ways-to-post-data-in-http.html 感謝作者分享^_^ 四種常見的 POST 提交數據方式 HTTP/1.1 協議規定的 HTTP 請求方法有

原创 深入淺出CGlib——打造無入侵的類代理

原文鏈接 CGlib是什麼? CGlib是一個強大的,高性能,高質量的Code生成類庫。它可以在運行期擴展Java類與實現Java接口。 當然這些實際的功能是asm所提供的,asm又是什麼?Java字節碼操控框架,具體是什麼大家可

原创 PHP 入門學習筆記(一)

目錄: PHP 變量 print 和 echo PHP 數據類型 PHP 常量 PHP 字符串變量 PHP 運算符 算數運算符 賦值運算符 遞增遞減 比較運算符 邏輯運算符 數組運算符 三元運算符 ifelseswitch PHP

原创 ibatis 使用入門

簡介 iBatis 是apache 的一個開源項目,一個O/R Mapping 解決方案,iBatis 最大的特點就是小巧,上手很快。如果不需要太多複雜的功能,iBatis 是能夠滿足你的要求又足夠靈活的最簡單的解決方案,現在的 iBa

原创 使用 Docker 一步搞定 ZooKeeper 集羣的搭建

原文鏈接 背景 原來學習 ZK 時, 我是在本地搭建的僞集羣, 雖然說使用起來沒有什麼問題, 但是總感覺部署起來有點麻煩. 剛好我發現了 ZK 已經有了 Docker 的鏡像了, 於是就嘗試了一下, 發現真是爽爆了, 幾個命令就可以搭建

原创 Python 虛擬環境:Virtualenv

原文 virtualenv virtualenv用於創建獨立的Python環境,多個Python相互獨立,互不影響,它能夠: 1. 在沒有權限的情況下安裝新套件 2. 不同應用可以使用不同的套件版本 3. 套件升級不影響其他應用

原创 如何在數據庫事務提交成功後進行異步操作

原文鏈接 問題 業務場景 業務需求上經常會有一些邊緣操作,比如主流程操作A:用戶報名課程操作入庫,邊緣操作B:發送郵件或短信通知。 業務要求 操作A操作數據庫失敗後,事務回滾,那麼操作B不能執行。(失敗後也可以重新進行自調度) 操作A

原创 非 root 下安裝 MySQL 5.6

假設你的home目錄爲/home/work mysql-server 安裝 下載mysql.tar.gz wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.

原创 MySQL 複雜查詢

記錄一些自己不常用的 SQL 查詢語句。 例子:現有一張老員工表 staff,員工信息包括姓名,部門,薪水以及等級,公司將新員工放入數據庫中的另一張表 newStaff。現在我需要我們查詢哪一個部門的哪位員工薪水最高。 join 查