原创 JAVA NIO 選擇器

爲什麼要使用選擇器 通道處於就緒狀態後,就可以在緩衝區之間傳送數據。可以採用非阻塞模式來檢查通道是否就緒,但非阻塞模式還會做別的任務,當有多個通道同時存在時,很難將檢查通道是否就緒與其他任務剝離開來,或者說是這樣做很複雜,即使完成了這樣的

原创 MySQL批量更新死鎖案例分析

問題描述 在做項目的過程中,由於寫SQL太過隨意,一不小心就拋了一個死鎖異常,如下: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock

原创 MySQL表級鎖與行級鎖

表級鎖 MySQL表級鎖分爲讀鎖和寫鎖。 讀鎖 用法:LOCK TABLE table_name [ AS alias_name ] READ 釋放鎖使用UNLOCK tables.可以爲表使用別名,如果一旦使用別名在使用的時候也必須採用

原创 Tomcat學習之Wrapper

Wrapper 代表一個 Servlet,它負責管理一個 Servlet,包括的 Servlet 的裝載、初始化、執行以及資源回收。它的父容器一般是Context,Wrapper 是最底層的容器,它沒有子容器了,所以調用它的 addChi

原创 Fork/join框架之ForkJoinPool

概述 jdk7新增了併發框架-fork/join框架,在這種框架下,ForkJoinTask代表一個需要執行的任務,真正執行這些任務的線程是放在一個線程池(ForkJoinPool)裏面。ForkJoinPool是一個可以執行ForkJo

原创 memcached學習筆記

簡介 memcached是一種分佈式內存緩存系統,用於減輕數據庫的壓力。memcached集羣本身不具備分佈式的特性,集羣內的機器之間相互獨立,它需要客戶端的有力配合來完成數據的路由。數據分佈在memcache集羣中,當客戶端需要查詢某個

原创 java8 stream學習筆記

pipeline 爲了更好地對集合進行並行操作,java8中加入了stream API。以前對集合的操作策略由客戶端提供,有了stream API後,對集合的操作集成到了集合內部,客戶端只需要按需調用即可。stream API支持函數式編

原创 java7 MethodHandle學習筆記

簡介 java7在JSR 292中增加了對動態類型語言的支持,使java也可以像C語言那樣將方法作爲參數傳遞,其實現在lava.lang.invoke包中。MethodHandle作用類似於反射中的Method類,但它比Method類要更

原创 java8 lambda學習筆記之編譯與運行過程

從最簡單的lambda說起LambdaTest.java,代碼如下: package lambda.demo; import java.util.function.Supplier; public class LambdaTest

原创 spring batch學習筆記之元數據表

作用 spring batch框架通過元數據表(meta data tables)來保存每個job的執行情況。包括記錄每個job的名稱和參數,每個job execution的狀態和執行結果,每個tasklet的狀態和執行結果等。 配置

原创 asm學習筆記之生成方法

MethodVisitor 簡介 如果要生成方法實現的字節碼,就要藉助MethodVisitor類了,可以通過ClassVisitor的visitMethod方法得到一個MethodVisitor子類TraceMethodVisitor的

原创 java7 invokedynamic學習筆記

概述 jvm中方法調用指令有: invokeinterface:調用接口方法; invokespecial:專門用來調用父類方法、私有方法和初始化方法; invokestatic:調用靜態方法; invokevirtual:調用對象的一般

原创 JVM中的ExplicitGCInvokesConcurrent選項

問題描述 最近常收到機器load過高的報警,時間不定,機器也不定,特意花時間分析了一下這個問題。 首先通過tsar -q命令瞭解系統整體情況,結果如下: 可以看出,1點50分load達到6.74,首先懷疑是不是在進行full gc,於是

原创 Cassandra學習筆記之數據文件分佈

概述 Cassandra寫入數據流程是先將數據寫入Commitlog中,然後寫入內存Memtable中,當滿足一定條件將內存中的數據刷入磁盤SSTable。 Cassandra需要兩個目錄來分別保存Commitlog和SSTable生成的

原创 asm學習筆記之生成接口

asm簡介 asm指代C語言中的__asm__關鍵字,是一種java字節碼引擎庫,可以用它在運行期修改類的字節碼,也可以用它來動態地生成stub類和其他代理類。 asm提供了兩套分析和修改字節碼的API: (1)core API :核心A