原创 JVM何時會進行全局GC

1、System.gc()方法的調用 此方法的調用是建議JVM進行Full GC,雖然只是建議而非一定,但很多情況下它會觸發 Full GC,從而增加Full GC的頻率,也即增加了間歇性停頓的次數。強烈影響系建議能不使用此方法就

原创 算法基礎之--插入排序

package wck.sort;/** * Created on 18/9/7. */ /** * @program: demo * @description: 插入排序 * @author: wck * @cre

原创 ThrealLocal使用場景

每個線程需要獨享的對象,且這個對象是線程不安全的,所以需要ThreadLocal給每個線程複製一份 eg:Random、SimpleDateFormat 都是線程不安全的; 以下代碼是通過線程池來打印各個線程的時間 ` pu

原创 JVM垃圾收集器參數總結

參照深入JVM虛擬機 點贊 收藏 分享 文章舉報 奔波兒灞愛上灞波兒奔 發佈了47 篇原創文章 · 獲贊 21 · 訪問量 2萬+ 私信

原创 算法基礎之插入選擇排序

選擇排序 選擇排序(Selection sort)是一種簡單直觀的排序算法。它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。 package wck.so

原创 JVM內存分配與回收策略

在基於Serial/Serial Old收集器(ParNew /Serial Old收集器組合基本也符合)下的的內存回收策略。 對象優先分配在Eden區域: 在大多數情況下,新生代的對象在Eden區重分配,當Eden區域沒有

原创 C語言指針域內存

計算機中:1個字節=8 byte; 32位代表32個地址總線,和操作系統的尋址地址有32個 一個地址代表一個字節; 1024字節=1K;32位最大管理內存4G; 1個字節佔用8個二進制位; 內存交給操作系統管理; mai

原创 算法基礎-插入排序進階之希爾排序

希爾排序(Shell Sort)是插入排序的一種。也稱縮小增量排序,是直接插入排序算法的一種更高效的改進版本。希爾排序是非穩定排序算法。該方法因DL.Shell於1959年提出而得名。希爾排序是記錄按下標的一定增量分組,對每組使用

原创 Java 中Class文件詳解

轉自:JVM中class文件探索與解析  (1)首先,編寫簡單代碼,對其編譯生成的class文件進行研究,其java代碼如下: View Code 編譯之後,用WinHex軟件打開其class文件,可以看到其編譯的十六進制文件如下

原创 X86-64寄存器和棧幀

概要 說到x86-64,總不免要說說AMD的牛逼,x86-64是x86系列中集大成者,繼承了向後兼容的優良傳統,最早由AMD公司提出,代號AMD64;正是由於能向後兼容,AMD公司打了一場漂亮翻身戰。導致Intel不得不轉而生產兼容A

原创 AQS--獨佔鎖源碼解析

AQS獨佔鎖是很多併發包的基礎,像讀寫鎖,CountDownLatch都是基於AQS實現的,搞懂其原理對我們學習java併發包會有很好的作用。 - 先來看鎖的幾種狀態 volatile int waitStatus; //鎖狀

原创 併發測試輔助類CountDownLatch使用與源碼

CountDownLatch類介紹: 一個同步輔助類,在完成一組正在其他線程中執行的操作之前,它允許一個或多個線程一直等待。 用給定的計數 初始化 CountDownLatch。由於調用了 countDown() 方法,所以在

原创 算法基礎之--紅黑樹實現

package wck.sort;/** * Created on 18/9/13. */ /** * @program: demo * @description: 紅黑樹實現 * @author: wck * @cre

原创 算法基礎之--hash表新增,刪除,擴容

package wck.sort; import java.util.TreeMap; /** * 二次封裝hashtable。基於數組和TreeMap * @param <K> * @param <V> * */ pu

原创 算法基礎之--二分搜索樹(添加,刪除,深度優先遍歷,廣度優先遍歷)

package wck.sort;/** * Created on 18/9/10. */ import java.util.ArrayList; import java.util.Queue; /** * @progra