原创 GC參數

一.串行收集器 特點:最古老 最穩定 效率高 缺點:可能會發生較長時間的停頓 參數:-XX:+UseSerialGC 新生代.老生代使用穿行回收 老生代複製算法.新生代標記壓縮算法 二.並行收集器 參數-XX:+UseParNewGC 影

原创 JAVA-JUC-ReentrantLock

ReentrantLock 與synchronized區別 1.可重入性 兩者的區別不大 都是同一個線程進入一次鎖的計數器自增1要等到鎖的計數器下降爲0時才能釋放鎖 2.鎖的實現 synchronized關鍵字是通過JVM實現的,

原创 JAVA-JUC-CountDownLatch使用方式

寫之前呢也看過別的技術博客大都是大講CountDownLatch的概念 看完之後一頭霧水不知道到底什麼是重點,所以打算寫一篇超簡單不帶概念的東西,看完就能用的玩意! 其實 CountDownLatch很簡單就是你創建的時候給一個數量X

原创 linux虛擬機搭建hadoop集羣(超簡單)

1.下載: 1.1 下載centos7: 黑羊君是在官網下載的centos 因爲是外網 如果沒有VPN的話可能比較慢,當然也可以百度一下國內的鏡像站 例如:阿里雲鏡像 網易雲鏡像 清華鏡像等等... 官網地址:https://www.ce

原创 Java用於生成唯一ID

/** * 用於生成唯一 ID * 關於如何在系統中生成唯一性 ID 的問題(如訂單號、批次號等),一直困擾了許久。因爲還要考慮併發的問題,所以時間戳 + 隨機數的組合並不可取,Java 中的 UUID 是一種可取的方法,但它的缺點是

原创 Java NIO(二) 直接緩衝區與非直接緩衝區的區別

這是非直接緩衝區當我們的程序想要從硬盤中讀取數據 需要1.先從物理硬盤把數據讀取到物理內存中2再將內容複製到JVM的內存中3然後讀取應用程序纔可以讀取到內容讀寫都是這樣需要複製這一個動作 當遇到大文本的文件時 效率及其低下.直接緩衝區的是

原创 JAVA NIO(三) 三種文件的複製方法與效率對比

文件的複製最能體現io效率了.因爲既需要讀取數據還需要寫出到硬盤中,下面提供了三種文件複製的方法 可以對比一下 直接緩衝區與非直接緩衝區的效率對比.public class Nio { public static void ma

原创 Java NIO(一) NIO的基本概念與使用

public class TestBuffer { /** * 一. 緩衝區 (Buffer):Java Nio中負責數據的 存取+緩衝就是數組.用於存儲不同類型的數據 * * 根據類型不同(boo

原创 docker安裝 mysql

1. 安裝docker (建議上官網下載安裝包安裝。)   $ brew install docker   2. 下載mysql鏡像   $ docker pull mysql   3. 啓動mysql實例   $ docker r

原创 JVM 參數調優筆記

棧大小分配:棧大小通常只有幾百k,因爲每個線程啓動都會有自己的棧空間如果你想你的程序多跑一些線程的話.那麼你的棧空間應該是減小.而不是增大.當你的函數調用太深就出現 棧溢出java.lang.StackOverflowError例如一個永

原创 手寫實現Java ArrayList實現

手寫實現Java ArrayList實現 只是實現了一些常用的方法 例如 add() get() set() remove()方法。 都有註釋 方便同學們理解代碼。 ArrayList的核心是 數組拷貝System.arraycopy(

原创 docker 安裝redis

1.下載最新版redis    docker pull redis:latest 2.查看下載好的鏡像   docker images 3.,使用Reids鏡像,創建並啓動Redis容器  docker run -p 6379:6379

原创 Java實現數據庫的groupby (list轉map 百度面試題)

Java實現數據庫的groupby 之前去百度面試的時候遇到過這個問題,因爲以前沒想過這個問題 當時就懵逼了。 其實實現起來很簡單就是個list轉map 看代碼 代碼塊 代碼塊語法遵循標準markdown代碼,例如: /** * L

原创 windows下使用安裝使用redis

由於redis官方版本只有linux的,所以微軟的開源團隊自己維護redis的windows版本. 1下載 下載地址:https://github.com/MSOpenTech/redis/releases zip爲壓縮包.msi爲安裝