原创 JVM 基礎知識和JVM性能檢測

1:JVM內存模型 所有線程共享區:方法區(元數據)、堆 線程私有區:java虛擬機棧、本地方法棧、程序計數器。 以下是對這5個進行詳細說明。 程序計數器(線程私有):用來存儲指向下一條指令的地址,內存特別小 本地方法棧(線程私有):登

原创 java-設計模式-備忘錄模式

設計模式-備忘錄模式 本質:保存和恢復對象狀態(部分狀態) 不破壞封裝性的前提下,獲取一個對象的內部狀態,並在該對象外保存這個狀態。 Memento模式比較適用於功能比較複雜的,但需要維護或記錄屬性歷史的類,或者

原创 ORACLE SQL查詢優化

1、優化解析時間 語句緩存 SQL語句 -》共享池 -》高速緩存 軟解析:從共享池中 取出 以前的解析 過的語句 硬解析:重新開始新的解析 硬解析會消耗資源多很多,SQL可以複用還是要複用的。 sql語句 -> hsah 值 當

原创 java ThreadLocal 使用

ThreadLocal 線程內 threadLocal.set(), 只是當前線程能 threadLocal.get() 到 只能設置一個對象,可set map對象。 容易造成內存泄漏,每次使用完ThreadLo

原创 java-設計模式-中介者模式

設計模式-中介者模式 用一箇中介對象來封裝一些了的對象交互。各對象不需要顯示的相互引用。 中介就是所有的調和者,符合最小知道原則,把交互功能幾種在中介者身上。 優點: 靈活性高,因爲將同事類進行了

原创 java-設計模式-觀察者模式 java自帶

觀察者模式-發佈訂閱模式 一種一對多的依賴關係,讓多個觀察者對象同時監聽某一主題對象 當主題對象發送變化時會通知所有觀察者 觀察者自動更新自己 java本身有自帶觀察者模式實現 java.util.Observable 被觀察者

原创 java工具類-圖片和Base64互轉

圖片往往會轉成Base64進行網絡傳輸,持久化存儲等等。 Base64轉圖片: //base64字符串轉化成圖片 @SuppressWarnings("restriction") public static File

原创 Oracle in超過一千條處理方案

避免使用in,能不能使用join 聯合查詢,效率高點。 如果真的需要使用in,那麼基本思路就是 select * from id in (1,2,3.....,1000) or id in (1,2,3....1000) or id in

原创 java List和Vector的線程安全性比較

List 線程不安全,其中的操作不是原子操作 Vector 是線程安全的,其中的操作有sync修飾,爲同步操作 /** * 對比 list 和 vector 線程安全 */ public class ListVectorSave

原创 安裝KAFKA 報錯java.lang.VerifyError: Uninitialized object exists on backward branch 79

[2020-06-20 17:23:18,096] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistrat

原创 java後臺處理亂碼問題

1、前端get傳過來沒問題,經過UTF-8編碼之後,返回前端有問題,可能是Tomcat的編碼設置問題 需要這隻URIEncoding <Connector port="8080" maxThreads="150" minSpareThre

原创 java-設計模式-狀態模式-模擬審批流程-二級審批

設計模式的狀態模式,就是把狀態獨立成一個類,代替傳統複雜的if-else。 網上還有非常多關於狀態模式的介紹,不過很多都是點到即止,例子我理解的也不是很清楚。設計模式只是一種思路,掌握好這個思路就可以,實現有非常多種方法。   接下來我有

原创 mybatis generator 自動化工程,數據庫字段更新,生成的model不更新的bug(部分表)

mybatis generator 自動化工程,數據庫字段更新,生成的model不更新的bug,而且是部分表。 這個問題我排查了很久,最後發現是因爲我的數據庫中有多個用戶,而這個表名存在多個用戶下,會出現問題。 解決方案如下: <tab

原创 利用反射實例化實體

/** * 根據swagger ApiModelProperty 註解類的 example 實例化 實體 * @param clazz 實體類 * @param <T> 返回實例化的數據 * @

原创 Failed to read artifact descriptor for org.springframework.boot:spring-boot--***解決方法

用Spring boot時經常會遇到 Failed to read artifact descriptor for org.springframework.boot:spring-boot-**.jar 問題 意思是 找不到這個jar。