原创 JAVA 模擬邏輯門實現加法運算( 半加法器 + 全加法器 )

硬件懶得花錢買板子,《我的世界》又不會玩,於是用 java 模擬了一下,算是加深理解和記憶吧! 參考資料:   java代碼: import lombok.Getter; import lombok.Setter; public

原创 Mybatis 源碼編譯 實現自定義 標籤 test 判斷邏輯

使用 Mybatis框架時,我們經常使用 <if test="email != null and email != ''"> 來進行非空判斷,但是感覺這樣很不優雅,比如需要代碼層面進行 trim操作,如果把邏輯加在 test中只會使得更加

原创 java遞歸求解帶方法調用的表達式

1. 網上容易找到的都是求解 加減乘除和括號 的表達式,比如: ( 1 + 2 ) * 3 + 4,不能求解 : sum( 3, 4, 5 ) / 2  - 4 -sum( 5, 3, 1 ) 這樣的, 於是自己在此基礎上寫了一個可以求解

原创 mysql-5.7.23-winx64.msi 安裝步驟

1. 訪問搜狐鏡像 http://mirrors.sohu.com/mysql/MySQL-5.7/ 下載 mysql-5.7.23-winx64.msi  2. 安裝 mysql-5.7.23-winx64.msi  ,一路 next 

原创 maven 踩坑之旅

1.   src/main/java 之外的java  代碼也不要打進去需要怎麼配置: idea 中 file-->settings-->project structure-->project settings-->modules,右鍵 

原创 java 不用 synchronized,不用鎖,不用 Unsafe 中的 native 方法實現互斥鎖!

import java.util.*; import java.util.concurrent.CountDownLatch; /** * 看操作系統原理說軟件層面也可以實現多線程互斥,但是看java的一些鎖,以及 cas,sync

原创 java 使用 sleep + interrupt 實現互斥鎖效果

import java.util.*; import java.util.concurrent.CountDownLatch; public class Test { private static int threadCo

原创 SpringMVC 源碼閱讀之 HandlerInterceptor

springMVC 核心 servlet  DispatcherServlet 的 doDispatch 方法: ​ protected void doDispatch(HttpServletRequest request, HttpS

原创 hibernate config.buildSessionFactory() 初始化 c3p0 連接池時新建 mysql 物理連接軌跡追蹤

new Configuration().configure( "hibernate.cfg.c3p0-pool.xml" ).buildSessionFactory() Settings settings = this.buildSe

原创 hibernate 源碼閱讀之 事務提交後有沒有自動歸還( 釋放 )連接?

            以下是釋放連接的代碼追蹤:           以下是判斷是否需要釋放連接的代碼追蹤:       那麼,ConnectionManager 的 releaseMode( ConnectionRel

原创 HttpSession 源碼閱讀之 session 過期原理

主要是用 lastAccessedTime 或 thisAccessedTime 和系統當前時間的差值 和 maxInactiveInterval 作比較判斷是否過期:                          

原创 hibernate 源碼閱讀之 JDBCTransaction.commit( ) 都幹了啥?

                如果設置了 session 設置了自動關閉的話,則 提交事務時還會釋放連接( 即歸還至連接池 ):                    

原创 git 命令總結

1.查看本地和遠程分支列表(以及映射關係):     git branch -v    查看本地分支列表     git branch -va     查看本地分支+遠程分支列表之列表     git branch -vv    查看本地

原创 jdk 源碼閱讀之 ArrayList 的擴容機制

public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{

原创 java quartz 定時器核心源代碼閱讀

this.schedThread 的類型是 org.quartz.core.QuartzSchedulerThread extends java.lang.Thread,下面是截取的類QuartzSchedulerThread 的