原创 CopyOnWriteArrayList 轉

CopyOnWriteArrayList位於java.util.concurrent包下,可想而知,這個類是爲併發而設計的。  由於opyOnWriteArrayList 也是List的一種實現類,當然有List的特點。 關注點 結論

原创 【JVM】JSTATD結合Java VisualVM進行遠程監控JVM運行情況(二) 轉

內存泄露指的是程序中動態分配內存給一些臨時對象,但是對象不會被GC(java垃圾回收機制gabage collection)所回收,它始終佔用內存。即被分配的對象很大但已無用; 內存溢出指的是程序運行過程中無法申請到足夠的內存而導致的一種錯

原创 【Linux初學】nginx-lua-fastdfs-GraphicsMagick安裝(八) 轉

近期剛好有時間,整理一下nginx-lua-fastdfs-GraphicsMagick。簡單說就是,在nginx配置圖片請求lua腳本,腳本中通過GraphicsMagick命令將fastdfs文件系統上的圖片變更成指定的尺寸。 先看看前

原创 【Mybatis】一級緩存、二級緩存介紹與常見問題(四) 轉

一般來說,可以在5個方面進行緩存的設計: 1.最底層可以配置的是mysql自帶的query cache, 2.mybatis的一級緩存,默認情況下都處於開啓狀態,只能使用自帶的PerpetualCache,無法配置第三方緩存 3.mybat

原创 【Mysql】利用Mybatis3連接mysql獲取datetime類型數據錯誤 轉

mysql版本:myql-connector-java-8.0.11.jar mybatis3連接數據庫代碼如下: public interface HeXinMapper { @SelectProvider(type = H

原创 【Synchronized】對象鎖 & 類鎖(二) 轉

一、synchronized關鍵字 synchronized關鍵字有如下幾種用法: 非靜態方法或靜態方法上加入關鍵字synchronized; 使用synchronized(對象/this/類.class)靜態快; 下面對上述兩種情況

原创 【RPC】SpringCloud簡介 & RPC與Restful API關係(三) 轉

近兩年Springboot、Springcloud使用的越來越多。先了解下概念: SpringBoot:旨在簡化創建產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能,可以和spring

原创 【排坑】Ftp正常連接服務器但無法獲取文件(四) 轉

ftp工具類 FtpUtil 中部分代碼如下: import org.apache.commons.net.ftp.*; public class FtpUtil { private static Logger

原创 Java操作PDF文件 原

最近在調試合同模板,發現原實現方式生成的pdf校驗後差別很大,當反過來去修改html模板,卻又很大程度上不能完全相同的pdf文檔結構,這樣就浪費很多開發時間去調N套html頁面樣式。決定直接用程序在標準pdf上操作,一勞永逸。 原實現方式:

原创 【排坑】多線程事務引發的問題(二) 原

【前提】:TestReqJsonProcess位於Service層,其中doProcess方法用於更新指定主鍵的remark數據。後期新需求要求在執行所有更新Service時調用三方接口,並將remark轉義爲中文作爲參數傳輸給三方。類似T

原创 【Mysql】MYSQL語句性能分析與優化(五) 轉

一、推薦一個數據庫關鍵字explain,執行後有幾個字段說明一下: 1、type:訪問類型,是較爲重要的一個指標。結果值從好到壞依次是: system > const > eq_ref > ref > fulltext > ref_or_n

原创 【排坑】內外部事務的回滾問題(三) 原

【前提】:嵌套事務。事務doProcess方法的中調用事務update方法,且可以捕獲update方法中拋出的異常,問:doProcess方法既然可以捕獲異常,那還會發生回滾操作麼? 【代碼】: @Service public class

原创 【排坑】多線程導致數據混亂(一) 原

【前提】:使用多線程併發,每個線程獲取表裏不同Time字段的數據,然後執行業務邏輯代碼。目標是讓每個線程都能獨立運行,互不干擾併發完成。 【代碼】: //線程池管理 ExecutorService es = Executors.newCa

原创 【HashMap】HashMap死循環與元素丟失(一) 轉

前一篇文章講解了HashMap的實現原理,講到了HashMap不是線程安全的。那麼HashMap在多線程環境下又會有什麼問題呢? 公司項目的一個模塊在線上運行的時候出現了死循環,死循環的代碼就卡在HashMap的get方法上。儘管最終發現不

原创 Windows安裝多個版本JDK,靈活切換 轉

首先聲明一點,操作系統限制爲Windows10,一切操作是在Windows10環境下進行的。其次,我們以JDK1.7、JDK1.8兩個版本爲背景來描述主題內容。 一、安裝好JDK1.7和1.8:       windows系統下安裝JDK