原创 線程池(一)爲什麼要使用線程池

本文主要以實戰的方式,探索Java語言中的Thread與OS中進程(線程)的關係,探索OS創建線程的細節,並總結其中的資源消耗。 通過這個過程,你就知道爲什麼要使用線程池。 隨處可見的論調 在生產環境中,爲每個任務分配一個線程

原创 java併發編程之 Lock的優勢

本文導論: JDK1.5 中新增了Lock接口及其一衆實現類,作者是大神 Doug Lea。Lock是一種在多線程環境下控制訪問共享資源的工具。在此之前,已經有關鍵字synchronized用於同步,那麼爲什麼還需要再造一個新的

原创 自己寫的java.lang.String能否被加載

如題,作者之前對於自己寫的java.lang.String類能否被加載,一直感到非常困惑,今天寫代碼證實了一下。上乾貨。 自己寫類加載器: public class MyClassLoader extends ClassLoade

原创 編譯 Spring5.1.x

首先,按照這個教程搞一遍優秀的教程 根據我的經驗,最後當運行測試用例的時候,會出現各種找不到類,找不到符號。這時候把對應的module的build和out刪掉,運行其中的測試用例重新生成build和out。然後就成功了。

原创 HashMap常見問題

1. hashMap如何計算key的hash值?爲什麼? hash = (h=key.hashCode()) ^ (h >>> 16) 因爲在計算下標值的時候,採用的公式如下,其中n是table的長度。 index = (n-1

原创 mysql 四種隔離級別詳解

本文以一系列詳細的sql語句,使你徹底理解mysql的四種隔離級別。 下面的例子中,用到了兩個會話(session),每個session中各開啓了一個事務,分別記作session A, 事務A;session B, 事務B。

原创 由AtomicInteger開始講CAS

AtomicInteger底層依賴於Unsafe類,基於CAS(compare and swap/set)原理,CAS底層由cpu原語支持,可以保證更新一個Integer變量的原子性。Unsafe類可以直接操作內存,指定在內存的

原创 spring概念理解

alias <alias name="person" alias="person2"></alias> 挺早之前,如果我要對一個別人定義好的bean起一個別名,而我沒有修改applicationContext.xml的權限,那麼

原创 java 同步工具類

CountDownLatch CountDownLatch可以用來保證,一個或者多個線程阻塞在某處,待某些其他指令執行完畢後再開始執行。初始化時指定一個count,程序會在await()方法的掉用處阻塞,每次調用countDown

原创 syncronized關鍵字詳解

java中的關鍵字syncronized,具有以下特點: 可以修飾方法或者一個代碼塊,屬於悲觀鎖的一種。修飾靜態方法時,加鎖對象是類的Class對象,修飾非靜態方法或者代碼塊時,鎖住的是調用該方法的當前對象。 可以保證原子性,可

原创 xshell連接本地虛擬機ubuntu

今天在虛擬機中搭建了Ubuntu kylin 16.04,用xshell通過公鑰方式連接登陸虛擬機,記錄一下配置過程。 通過Xshell生成一對密鑰/公鑰。點擊“工具”->“新建用戶密鑰生成嚮導”。這一環節需要輸入密鑰加密的

原创 緩存穿透、緩存擊穿、緩存雪崩

本文轉自:https://baijiahao.baidu.com/s?id=1619572269435584821&wfr=spider&for=pc   Redis緩存的使用,極大的提升了應用程序的性能和效率,特別是數據查詢方面。但同時

原创 java基礎 int變量自增 效率問題

本文論述java中以下三條語句的效率問題。 1. i++; 2. i = i+1; 3. i += 1; 所採用的的方法是只寫出包含這三條語句的方法,編譯成字節碼,然後分析字節碼指令。 下面是我的java源碼: p

原创 leetcode經典題目及解法記錄

Question15 3Sum Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all uni

原创 maven搭建第一個web項目

今天首次嘗試用maven搭建了一個web項目,這篇帖子挺好的,轉載一下。原文地址:http://www.cnblogs.com/candle806/p/3439469.html 按照我的配置,文中第11步,不能取消Dynamic Web