原创 架構探險——從零開始的MVC框架(二)

上一回講到如何在一堆工具類的幫助下,在IocHelper類中實現依賴注入。然後書中編寫了一個ClassHelper類,該類主要的作用是獲取所有Controller類,然後通過反射獲取該類中所有帶Action的方法,進而獲取請求方法

原创 java中創建線程的三種方式

java中線程創建的三種方式 什麼是線程 進程:一段代碼在特定數據集合上的一次運行活動,操作系統資源分配的基本單位。(換了個數據集合或者換了代碼都不算是同一個進程) 線程:是進程中的一個實體,本身是不會獨立存在的。是進程的一個

原创 java線程池的基礎知識及源碼解析

基礎知識 線程池主要是ThreadPoolExecutor這個類。Excutor其實是個工具類,裏面提供了一系列的靜態方法,根據用戶選擇返回不同的線程池實例。ThreadPoolExecutor類繼承了AbstractExecut

原创 mysql中的鎖 常見問題和總結(innodb)

死鎖及其案例 我們知道,操作系統中的死鎖是“佔有並等待”,也就是一個線程佔有資源A而等待資源B,另一個線程則佔有資源B並等待資源A。mysql中的死鎖也是同理。假設一個事務鎖定了行A同時需要對行B進行操作,而另一個事務鎖定了行B同

原创 mybatis基礎學習1(實現簡單的增刪改查)

mybatis的配置: 0.mybatis和jdbc的jar包 1.基礎配置config.xml(裏面寫上數據庫驅動名,url,用戶名和密碼) 2.把表和類對應起來的xml(須在config.xml裏面配置resource) c

原创 mysql事務知識點總結(InnoDB)

事務的四大特性 原子性:一個事務中的操作,要麼全都完成,要麼全都不完成。如果事務在執行過程中發生了錯誤,將會被回滾(rollback),就好像從來沒有發生過一樣。 一致性:事務完成後,數據庫的完整性沒有被破壞。它關注的方面不僅有主

原创 synchronized專場

synchronized和lock都是java中常用的同步機制。但不得不說,JDK官方爸爸對於synchronized這個小兒子的偏愛明顯超過了lock——即使我們說synchronized會笨重,會產生上下文切換的線程開銷,但J

原创 java三個線程同步器的用法與源碼解析

三種同步器的功能 本文主要介紹三個線程同步器,它們的功能分別是: CountDownLatch:確保所有子線程執行完成以後再執行彙總, 內部有一個計數器,一個子線程執行完就倒數一下,倒數完後返回; CyclicBarrier:讓

原创 前端向後端傳值方式(不用js)

前端向後臺傳值方式(不用js) 記兩種簡單的傳值方式 jsp文件中使用 a標籤進行傳值,可以直接這樣寫 <a href="url?參數名=xxx"> 後臺獲取直接寫 request.getParameter("參數名"); 或

原创 微信小程序 頁面間的兩種帶參跳轉方法

微信小程序中,頁面間的跳轉一般用的是寫在js文件中的wx:navigeteTo方法。有時候,我們在跳轉時需要帶上參數,這個參數一般是寫在這個方法的url中的。 首先是wx:navigateTo方法的格式: let url = '.

原创 springboot整合mongodb(idea+maven)

springboot整合mongodb(idea+maven) 首先在pom.xml中添加包依賴: <dependency> <groupId>org.springframework.boot</gro

原创 mysql innodb索引總結

innodb索引數據結構 基礎數據結構:B+樹 innodb索引是一個B+樹的結構。我們知道,B樹是一個用各種旋轉法則來維持平衡(就是整棵樹看着很勻稱,沒有某一個分支特別長或者特別短的局面)的一種多叉樹,而B+樹就是在此基礎上,把

原创 二叉樹的四種遍歷方式(遞歸和非遞歸)

這篇文章的目的只是整理幾個常用的二叉樹遞歸/非遞歸遍歷的模板函數,方便用到的時候憑藉記憶寫出來即可。內容沒多少技術含量,寫給自己看的,權當參考。 前序遍歷 遞歸:很簡單,按照根左右的邏輯訪問就是。 public List<Inte

原创 java中集合及字符串的線程安全問題彙總

這其實不完全屬於JUC的內容,但是見到了好多集合類線程安全的問題,就彙總一下。 數組 ArrayList:非線程安全 LinkedList:非線程安全 衆所周知,ArrayList不是線程安全的,LinkedList也不是。它們的

原创 JUC中幾種鎖的原理剖析

LockSupport工具類 底層是Unsafe類實現的,主要作用是掛起(park()方法)和喚醒(unpark()方法)線程,看起來和wait()與notify()差不多,不過還有一些區別:park()不需要獲取對象的鎖。 Lo