原创 volatile關鍵字三重功效

64位寫入原子性 舉一個簡單的例子,對於一個long型變量的賦值和取值操作而言,在多線程場景下,線程A調用set(100),線程B調用get(),在某些場景下,返回值可能不是100。 package com.lc.test02; im

原创 基於SpringBoot的Ftp連接池終極實現

1、配置文件 package com.faea.bus.core.properties; import lombok.Getter; import lombok.Setter; import org.springframework.b

原创 可重入鎖的幾個核心要素對標AQS

在JUC包中AbstractQueuedSynchronizer經常被稱作隊列同步器(AQS),是JUC包內鎖的實現關鍵,那要實現一個可重入鎖需要幾個核心要素 需要一個記錄鎖狀態的變量state,state至少需要兩個值0、1,對stat

原创 NIO Socket實現聊天

package com.lc.test.test04; import java.nio.ByteBuffer; import java.nio.channels.ClosedChannelException; import java.

原创 java替換word模板中佔位符

word模板動態替換佔位符(eg:${placeholder})然後生成新的word 網上搜索的不管是docx4j還是poi都只是實現了佔位符在同一個文本中(讀取word行數據後,行數據會分爲多個文本)的替換,針對佔位符沒有在同一個文本或

原创 內網穿透工具,代理本地端口生成外網可訪問域名,支持linux\mac\win64

內網穿透工具使用教程 打開文件夾根據系統進入相應的目錄 執行命令,這裏以mac 爲例進入,執行一下命令 ./ding -config=./ding.cfg -subdomain=abcd 1200 其中”abcd“爲域名信息,120

原创 maven 打包 releases 和 snapshots 版本

releases:線上版本(生產環境使用的) snapshots:快照版本(開發過程中使用的) maven 打包代碼到私服根據version 後面是否帶有“-SNAPSHOTS” 來區分是打包線上版本還是快照版本,如果帶有“-SNAPSH

原创 idea2018 破解方法超簡單

附加另外兩個 License server address:http://idea.congm.in/http://idea.toocruel.net

原创 ArrayList正確的使用可以極大的提示添加效率

1、ArrayList原理ArrayList底層使用可變長度數組存儲元素在初始化ArrayList時,如果沒有指定初始化容量或者指定0爲初始化容量,那初始化容量將默認爲10在每次添加元素時,首先校驗容量是否滿足,如果不滿足使用Arrays

原创 Java調用ffmpeg進行視頻轉碼

import java.io.*; import java.lang.*; import java.util.*; import java.text.*; import java.net.*;

原创 idea中調試jdk8源碼

調試jdk源碼難點1、debug無法查看局部變量2、在學習期間,添加不了註釋帶着這兩個問題,咱們繼續往下看解決添加不了註釋的問題1、打開idea->選擇Project->File->Project Structure->SDKS->Sou