原创 eslint+husky+prettier+lint-staged提升前端應用質量

1. 引入掃描工具的初衷 1.1 針對痛點 目前在梳理前端應用時發現很多代碼不規範的地方,包括簡單的js問題以及代碼格式化的問題,造成了代碼可讀性下降,另外各種歷史代碼也是“風格迥異”,甚至影響了應用質量。應用開發成員大部分由於之前是

原创 入Ali的過去一年,談談我對code-review的理解

1. what—什麼是CR codereview(CR)一直以來在軟件行業被視爲提升代碼質量的一種有效的方式,也被視爲一種工程師文化的代表。關於什麼是CR,在goole出具體的定義如下: 代碼評審是指在軟件開發過程中,對源代碼的系統

原创 詳解Condition的await和signal等待/通知機制

1.Condition簡介 任何一個java對象都天然繼承於Object類,在線程間實現通信的往往會應用到Object的幾個方法,比如wait(),wait(long timeout),wait(long timeout, int nan

原创 13篇文章,教你學會ES6知識點

ES6 深入理解ES6》學習筆記 本文用於彙總鏈接到各個子章節的內容,github 歡迎大家題issues和PR,如果對你有幫助,也可以給 star 支持 :) 目錄 第一章 塊級綁定 第二章 字符串和正則表達式 第三章 函數 第

原创 深入理解AbstractQueuedSynchronizer(AQS)

1. AQS簡介 在上一篇文章中我們對lock和AbstractQueuedSynchronizer(AQS)有了初步的認識。在同步組件的實現中,AQS是核心部分,同步組件的實現者通過使用AQS提供的模板方法實現同步組件語義,AQS則實現

原创 併發容器之ThreadLocal

1. ThreadLocal的簡介 2. ThreadLocal的實現原理 3. ThreadLocalMap詳解 3.1 Entry數據結構 3.2 set方法 3.3 getEntry方法 3.4 remove 4. Thre

原创 【Java併發專題】27篇文章詳細總結Java併發基礎知識

努力的意義,就是,在以後的日子裏,放眼望去全是自己喜歡的人和事! github:https://github.com/CL0610/Java-concurrency,歡迎題issue和Pull request。所有的文檔都是自己親自碼

原创 深入理解ES6--10.增強的數組功能

主要知識點:創建數組、數組上的新方法、類型化數組 1. 創建數組 在 ES6 之前創建數組主要存在兩種方式: Array 構造器與數組字面量寫法。這兩種方式都需要將數組的項分別列出,並且還要受到其他限制。將“類數組對象”(即:擁有數

原创 併發容器之BlockingQueue

1. BlockingQueue簡介 2. 基本操作 3. 常用的BlockingQueue 1. BlockingQueue簡介 在實際編程中,會經常使用到JDK中Collection集合框架中的各種容器類如實現List,Map

原创 併發容器之ConcurrentLinkedQueue

1.ConcurrentLinkedQueue簡介 在單線程編程中我們會經常用到一些集合類,比如ArrayList,HashMap等,但是這些類都不是線程安全的類。在面試中也經常會有一些考點,比如ArrayList不是線程安全的,Vect

原创 初識Lock與AbstractQueuedSynchronizer(AQS)

1. concurrent包的結構層次 在針對併發編程中,Doug Lea大師爲我們提供了大量實用,高性能的工具類,針對這些代碼進行研究會讓我們隊併發編程的掌握更加透徹也會大大提升我們隊併發編程技術的熱愛。這些代碼在java.util.c

原创 深入理解ES6--13.用模塊封裝代碼

主要知識點:什麼是模塊、模塊中的導出、模塊中的導入 1. 什麼是模塊? 模塊(Modules ) 是使用不同方式加載的 JS 文件(與 JS 原先的腳本加載方式相對) 。這種不同模式很有必要,因爲它與腳本(script ) 有大大不

原创 徹底理解ReentrantLock

1. ReentrantLock的介紹 ReentrantLock重入鎖,是實現Lock接口的一個類,也是在實際編程中使用頻率很高的一個鎖,支持重入性,表示能夠對共享資源能夠重複加鎖,即當前線程獲取該鎖再次獲取不會被阻塞。在java關鍵字

原创 併發容器之ConcurrentHashMap(JDK 1.8版本)

1.ConcurrentHashmap簡介 在使用HashMap時在多線程情況下擴容會出現CPU接近100%的情況,因爲hashmap並不是線程安全的,通常我們可以使用在java體系中古老的hashtable類,該類基本上所有的方法都採用

原创 併發容器之CopyOnWriteArrayList

1. CopyOnWriteArrayList的簡介 java學習者都清楚ArrayList並不是線程安全的,在讀線程在讀取ArrayList的時候如果有寫線程在寫數據的時候,基於fast-fail機制,會拋出ConcurrentModi