原创 坑——freemarker

1.空值處理   1.1 使用默認值    ${empty!"EmptyValue of fbysss"}   1.2 判斷是否爲空    <#if var??>        ${var}    <#else>    </#if>  

原创 java線程同步——信號量(Semaphore)

java.util.concurrent.Semaphore 信號量是一種計數器,用來保護一個或者多個共享資源的訪問,它是併發編程的一種基礎工具。 信號量通過計數器的方式來對資源進行訪問控制 當其計數器值大於0時,表示有資源可以訪問 當其

原创 JVM——JVM性能調優

JVM性能調優的經驗 整個堆大小=年輕代大小 + 年老代大小 + 持久代大小 -Xms : 最小可用內存 -Xmx : 最大可用內存 -Xmn(New Generation) : 年輕代大小 -XX:SurviorRatio=x : 設置

原创 JVMGC——併發收集器(CMS)

 CMS(Concurrent Mark Sweep)收集器 C :  Concurrent M :  標記(marking)對象 :GC必須記住哪些對象可達,以便刪除不可達的對象  S :  清除(sweeping) : 刪除未標記的

原创 JVMGC——堆內存的分代

分代的垃圾回收策略 基於對對象聲明週期分析後得出的垃圾回收算法。 把對象分爲年輕代、年老代和持久代,對不同聲明週期的對象使用不同的算法 年輕代:  一個Eden區,兩個Survior區 ,使用複製回收算法 所有新生成的對象首先都

原创 java線程同步——CountDownLatch

java.util.concurrent.CountDownLatch CountDownLatch允許線程等待一組在其他線程中執行的操作完成之後才繼續執行 這個類通過指定一個整數初始化內部計數器,這個整數就是線程要等待完成的操作的數

原创 JVMGC——基本垃圾回收算法

虛擬機的回收算法按照基本回收策略分爲以下四種: 1. 引用計數 原理是此對象有一個引用就增加一個計數,刪除一個引用則減少一個計數。垃圾回收時,只回收計數爲0的對象。 缺點:無法處理循環引用的問題   2.  標記-清除 , 是老年代(Te

原创 JMM——運行時數據區

Java虛擬機運行時數據區 1 程序計數器(Program Counter Register)   1.1 程序計數器是一塊較小的線程私有的內存空間,可以看作是當前線程鎖執行的字節碼的行號指示器。   1.2 如果線程正在執行的是

原创 java多線程——監視鎖(monitor)

java中每個對象都有唯一的一個monitor,想擁有一個對象的monitor的話有以下三種方式: 1.執行該對象的同步方法 public synchronize a () {} 2.執行該對象的同步塊 synchronize(ob

原创 JMM——volatile的內存語義

volatile 理解volatile特性的一個好方法: 把對volatile變量的單個讀/寫,看成是使用同一個鎖對這些單個讀/寫操作做了同步   鎖的happens-before規則保證釋放鎖和獲取鎖的兩個線程之間的內存可見性, 這意味

原创 JMM——線程間通信

在併發編程中,我們需要處理兩個關鍵問題: 1. 線程之間如何通信   通信是指線程之間以何種機制來交換信息,在命令式編程(c語言)中,線程之間的通信機制有兩種:   1.1 共享內存   在共享內存的併發模型裏,線程之間共享程序的公共狀態

原创 redis——redis的創建與部署

我用的redis版本是redis-3.0.7,系統是Linux Mint redis安裝 1.解壓 tar -zxvf redis-3.0.7.tar.gz 2.編譯和安裝 cd redis-3.0.7 make sudo make in

原创 redis——string類型的設計與實現

Redis的string類型可以保存任何數據,包括圖片、視頻,是用二進制形式存儲的 Redis String,無前綴,對於不存在的key都會創建指定的key 命令 效果 備註 set key value 設置對應的

原创 JAVA多線程——死鎖分析

線程死鎖的原因:當兩個或多個線程正在等待對方佔有的鎖,死鎖就會發生 死鎖會導致兩個線程無法繼續運行,被永遠掛起。 簡單的死鎖例子 創建兩個互相等待對方釋放鎖的線程 public class DeadLock1 implements R

原创 JVMGC——垃圾收集器的分類

垃圾收集器是垃圾回收算法的體現 JVM中垃圾收集器分爲三類: 1.串行收集器       2.並行收集器      3.併發收集器 串行收集器 用單線程處理所有垃圾回收工作,因此無需多線程交互,所以效率比較高 適合單處理器機器。串行