原创 前後端分離項目,mvn打包自動打包前端文件至指定目錄,依賴配置maven插件

插件配置 插件1 <plugin> <groupId>com.github.eirslett</groupId> <artifactId>frontend-maven-plugin</artifactId>

原创 JVM性能監測及調優(1)

JVM內存模型 爲什麼 JVM 在 Java 中如此重要? 首先你應該知道,運行一個 Java 應用程序,我們必須要先安裝 JDK 或者 JRE 包。這是因爲 Java 應用在編譯後會變成字節碼,然後通過字節碼運行在 JVM 中,

原创 JVM性能監測及調優(2)

深入JVM即時編譯器JIT,優化Java編譯 說到編譯,我猜你一定會想到 .java 文件被編譯成 .class 文件的過程,這個編譯我們一般稱爲前端編譯。Java 的編譯和運行過程非常複雜,除了前端編譯,還有運行時編譯。由於機器

原创 Java多線程調優上

初識上下文切換 我們首先得明白,上下文切換到底是什麼。 其實在單個處理器的時期,操作系統就能處理多線程併發任務。處理器給每個線程分配 CPU 時間片(Time Slice),線程在分配獲得的時間片內執行任務。 CPU 時間片是 C

原创 python——PEP8風格代碼規範指南

空白 python中的空白(whitespace)會影響代碼含義。程序員在使用空白的時候需要注意,因爲會影響到代碼的清晰程度。 使用space(空格)來表示縮進,而不要用tab(製表符)。 和語法相關的每一層縮進都用4個空格來表

原创 python——多線程maven批量打包工具

實現思路 通過命令進入路徑執行“maven clean”和“maven package” window執行多個命令語法:aa && bb (執行aa成功後,才執行bb) 通過任務隊列的方式實現 待所有線程任務完成後,再進行收取包

原创 Java多線程編程核心技術之同步鎖(3)

使用樂觀鎖優化並行操作 Synchronized 和 Lock 實現的同步鎖機制,這兩種同步鎖都屬於悲觀鎖,是保護線程安全最直觀的方式。 我們知道悲觀鎖在高併發的場景下,激烈的鎖競爭會造成線程阻塞,大量阻塞線程會導致系統的上下文切

原创 Java多線程編程核心技術之同步鎖(2)

深入瞭解Lock同步鎖的優化方法 在 JDK1.5 之後,Java 還提供了 Lock 同步鎖。那麼它有什麼優勢呢? 相對於需要 JVM 隱式獲取和釋放鎖的 Synchronized 同步鎖,Lock 同步鎖(以下簡稱 Lock

原创 Java多線程編程核心技術之同步鎖

深入瞭解Synchronized同步鎖的優化方法 在併發編程中,多個線程訪問同一個共享資源時,我們必須考慮如何維護數據的原子性。在 JDK1.5 之前,Java 是依靠 Synchronized 關鍵字實現鎖功能來做到這點的。Sy

原创 從瀏覽器內部運行機制看性能優化

瞭解瀏覽器背後的運行機制 瞭解瀏覽器背後的運行機制就是了解瀏覽器的內核,現在市面上主流瀏覽器的內核名稱分別如下: chrome: blink內核 Opera: blink內核 Safari: webkit內核 FireFox:

原创 rocketmq console本地啓動,簡單介紹

github下載地址: https://github.com/apache/rocketmq-externals.git 運行時命令及介紹 java -jar rocketmq-console-ng-1.0.1.jar --ser

原创 GitLab CI 示例

同repository,多個系統:構建測試,snoar掃描,自動部署 variables: SOURCE_PATH: "40_源碼/agxt" SOURCE_PATH_XSPCH: "40_源碼/線索排查會" SOUR

原创 npm——打包問題解決(後端開發的前端探索)

問題描述 打包時報錯,看了一眼剛有點想缺失模塊,類似於python缺少site-package一樣的報錯,條件反射:可能是工具包不完整。 解決方式 npm install重新安裝npm 然後重新執行npm run build進

原创 Python——Linux安裝

安裝環境操作系統:Ubuntu 18.04 (64位) python版本:3.7.2二、安裝步驟 第一步:安裝依賴環境 sudo apt-get install -y make build-essential libssl-dev

原创 GitLab CI/CD 介紹和使用

一、持續集成介紹 持續集成是一種軟件開發實踐,即團隊開發成員經常集成他們的工作,通常每個成員每天至少集成一次,也就意味着每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發佈,自動化測試)來驗證,從而儘快地發現集成錯