原创 通過java編程 不使用 XML 構建 SqlSessionFactory
如果你更願意直接從 Java 代碼而不是 XML 文件中創建配置,或者想要創建你自己的配置構建器,MyBatis 也提供了完整的配置類,提供所有和 XML 文件相同功能的配置項。 考慮到官網所寫的不是很詳細,踩了挺多坑,所以特寫此文章記錄
原创 JVM 問題整理
1、什麼是Java虛擬機?爲什麼Java被稱作是“平臺無關的編程語言”? 2、Java代碼是怎麼運行的? 3、Java虛擬機是如何加載Java類的? 4、JVM運行內存的分類 5、如何監控和診斷JVM堆內和堆外內存使用? 6、Java四引
原创 GC問題排查
頻繁GC問題或內存溢出問題 一、使用jps查看線程ID 二、使用jstat -gc 3331 250 20 查看gc情況,一般比較關注PERM區的情況,查看GC的增長情況。 三、使用jstat -gccause:額外輸出上次GC原因 四、
原创 zookeeper分佈式鎖實現邏輯
獲取鎖過程: 1、在zookeeper創建一個持久節點lock 2、ClientA應用訪問時往該lock節點下創建一個臨時節點lock-001 3、ClientB應用訪問時往該lock節點下創建另一個臨時節點lock-002,並查找所有節
原创 記錄:使用alibaba:fastjson將json轉爲對象
Maven引入 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.37</vers
原创 記使用廣度優先算法分析日誌調用鏈路
由於應用系統的日誌都是發到mq,以便使用flink進行分析,爲了分析應用系統每次請求的調用鏈路,需求設計算法去梳理這些散落的日誌節點,每條日誌都帶traceId 作爲標識一次調用的日誌。 如下爲一次請求調用的服務和依賴的資源 Servi
原创 JVM 內存管理-----JVM如何判斷對象已死
分享前拋出幾個問題? ▪ 如何判斷一個對象是否存活着? ▪爲什麼java堆內存要分代? ▪一個對象從創建到被回收經歷了哪些過程,如果是很大的對象呢? ▪哪些情況會報outofMemoryError,StackOverFlowError?
原创 parallel Scavenge 收集器
簡介: 新生代收集器,複製算法,並行收集,面向吞吐量要求(吞吐量優先收集器)。 吞吐量=用戶代碼運行時間/(用戶代碼運行時間+垃圾回收時間) -XX:MaxGCPauseMillis:控制最大垃圾收集停
原创 設計模式學習之策略模式
策略模式:定義了算法族,分別封裝起來,讓它們之間可以互相替換,此模式讓算法的變化獨立於使用算法的用戶。 有這樣一個情景: 遊戲公司要開發一款遊戲,希望遊戲界面上有一些鴨子,鴨子具有他本身的一些行爲,包括飛,叫,跑等等。
原创 Java編程中“爲了性能”一些儘量做到的地方
1、儘量在合適的場合使用單例 2、儘量避免隨意使用靜態變量 3、儘量避免過多過常的創建Java對象 4、儘量使用final修飾符 5、儘量使用局部變量 6、儘量處理好包裝類型和基本類型兩者的使用場所 7、慎用synchronized,儘量
原创 實習--實習第一天
第一天實習的心情是緊張而激動的,由於第一天怕遲到給人印象不好,早早的去搭公交,竟然提早一小時在公司門口等。剛進公司,人事給了一份公司制度表,並詳細解讀了,也許是沒見過這麼莊重的公司制度吧,其實內心還是充滿敬意的。接下來便是
原创 設計模式之單例模式
單例模式:確保一個類只有一個實例並提供一個全局訪問點 技術應用:線程池,緩存,對話框,日誌對象,充當打印機 真實場景應用:某食品有一個工業強度巧克力鍋爐控制器,比如鍋爐已經滿了還繼續放入原料,或者鍋爐內還沒放入原料就開始空燒。這樣的話,
原创 成爲Java頂尖程序員 ,看這11本書就夠了
“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認爲看書有兩點好處: 1.能出版出來的書一定是經過反覆的思考、雕琢和審覈的,因此從專業性的角度來說,一本好書的價值遠超其他資料 2.對着書
原创 關於robot framework調用python
最近在做部門的自動化測試研究,在選型的時候主要考慮到以下幾點: 1、可以擴展,支持自己寫python腳本,以便特殊場景可以調用 2、支持特殊控件,下拉框,樹形等控件 3、支持數據庫
原创 設計模式之觀察者模式
觀察者模式:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態是,它的所有依賴者都會收到通知,並自動更新。 畫如下圖理解定義: 根據分析,可以畫出如下的UML類關係圖: 實現代碼如下,文件目錄圖: 主題接口: pac