原创 【線程】 Thread.sleep 與 Thread.yield 的區別 (五)

我的原則:先會用再說,內部慢慢來 文章目錄Thread.sleep 與 Thread.yield 的區別一、 作用二、注意點三、區別四、代碼五、 JVM源碼六、 番外篇 Thread.sleep 與 Thread.yie

原创 【線程】可重入鎖與不可重入鎖(六)

我的原則:先會用再說,內部慢慢來 文章目錄一、 概念二、 實戰代碼三、 Thread.interrupt() 中斷線程也不會釋放鎖四、 Thread.stop() 中斷線程會釋放鎖五、 番外篇 一、 概念 不可重入鎖

原创 【git】解決git pull/push每次都需要輸入username和password問題

一、 如何解決每次都得輸入 username 和 Password? 項目 git 地址: HTTP模式: https://git.abc.com/group/myproject.git Git模式: [email protected]

原创 【線程】 Thread.yeild 內部原理 (四)

我的原則:先會用再說,內部慢慢來 文章目錄Thread.yeild一、 作用二、 注意點三、 代碼Demo四、 方法簡述五、 獨角戲六、 加個鎖 synchronized七、優先級Priority問題八、實戰結論九、JVM

原创 【IntelliJ IDEA】查看繼承關係

一、 硬件 mac + IntelliJ 二、查看繼承關係(找子類) 使用快捷鍵 Control + H 不使用快捷鍵: Navigate --Type Hierarchy 三、查看繼承關係(找父類與接口) 使用快捷鍵使用

原创 【線程】ReentrantLock 實戰 (七)

我的原則:先會用再說,內部慢慢來 文章目錄一、 概念二、 ReentrantLock 可重入三、 lock 與 unlock四、 lock.lock() 與 lock.lockinterruptibly()重點:下面模擬

原创 簡述下AtomicInteger底層(CAS)

1. 核心與目的 底層思想就是用CAS原理,保證線程安全。 2. 原理 場景: git或者svn提交之前,爲了避免版本衝突,你都得先 git pull ,然後才 git push ,否則就會出現版本號不對的問題。遠端的版本號V

原创 【線程】 Thread.sleep 與 Object.wait 的區別 (三)

我的原則:先會用再說,內部慢慢來 Thread.sleep 與 Object.wait 的區別 1. 作用 Thread.sleep 的作用是啥:當前thread睡覺,讓出資源。(但是不釋放鎖) Object.wait

原创 【線程】 Thread.join 內部原理 (一)

我的原則:先會用再說,內部慢慢來 Thread.join 1. 作用 join 的作用是啥:讓出當前鎖住的對象,讓別的線程跑完再來弄我的線程。 2. 注意點 記住鎖是鎖對象,不是鎖住線程 Join 方法是 Thr

原创 【線程】Object.wait 內部原理(二)

我的原則:先會用再說,內部慢慢來 Object.wait 1. 作用 wait 的作用是啥:讓出當前鎖住的對象,讓別的線程跑完再來弄我的線程。 2. 注意點 記住鎖是鎖對象,不是鎖住線程 Join 方法是 Thr

原创 解決Mongo插入時候 Invalid BSON field 問題。

1、先看異常 java.lang.IllegalArgumentException: Invalid BSON field name google_web-**-beauty.m at org.bson.Abstrac

原创 【日誌】logback入門

logback 入門 實戰,我的原則是,先會使用,然後再來剖析下源碼瞭解下原理 一、代碼 1、pom.xml <dependency> <groupId>ch.qos.logback</groupId> <

原创 【日誌】log4j.properties 字段如何加載以及如何控制日誌輸出級別(源碼剖析)

一問:log4j.properties 字段如何加載? 二問:如何控制日誌輸出級別? 1、先看 demo 代碼: package indi.sword.demo; import org.apache.log4j.Logger;

原创 【日誌】剖析log4j爲什麼能找到log4j.properties?

問:log4j爲什麼能找到log4j.properties 或者 xml? 一、簡單粗暴的學習法子: 1、直接在全工程中搜索 “log4j.properties”,你會找到相應字段的位置: package org.apache.log

原创 漢明重量(Hamming Weight)以及 redis的bitcout底層

Hamming Weight,即漢明重量,指的是一個位數組中非0二進制位的數量。 解決問題: 有100M的二進制數據,算出裏面有多少個1 ?(1MB = 1,000,000 Byte = 8,000,000 bit) 1、遍歷