原创 冒泡,選擇和插入排序比較

/** * 冒泡排序,兩層嵌套循環,內層局部比較後,找出最大或者最小數據並交換數據,使其局部有序,外層用於比較剩餘元素,相較於選擇排序,選擇排序相當於是冒泡的一個優化版本(減少了交換次數) */ public static

原创 基於註解的日誌實現

aop-log 隨着公司業務邏輯逐漸複雜,越來越多的項目採用了前後端分離進行開發,提高了開發效率,但是無形中增加了溝通和調試成本。故開發人員在代碼中採用了打印前端或者終端傳遞過來參數信息,這樣當出現問題時能夠排查和說明問題出在何處。aop

原创 protobuf序列化使用說明

protobuf轉換方法 編寫protobuf代碼如下: package netty; option java_package = "com.clq.netty.protoc"; option java_outer_classname

原创 2分鐘學會sonar安裝使用

1:下載並解壓SonarQube(http://www.sonarqube.org/downloads/) 2:啓動SonarQube  Server 3:下載並解壓SonarQube Scanner(http://docs.sonarqu

原创 如何排查java具體線程CPU佔用過高

jstack -l pid > pid.stack 轉儲java線程運行狀況。 top -Hp pid 由高到低依此列出cpu佔用情況。 把佔用高的線程PID從10進制轉換成16進制, 如23301 > 0x5b05. 根據3中計算的16

原创 基於Http請求的接口測試

引入maven依賴 <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-assured</artifactId> <version>3

原创 oracle11g自動分區使用

爲什麼使用自動分區? 在oracle11g之前,oracle是不支持自動分區功能的,這就可能導致我們系統在運行一段時間之後,就需要看看分區是否創建或者寫觸發器進行創建分區,否則就會導致數據無法入庫或者大量的數據全部都進入了默認分區。維

原创 ICE線程模型

1:ice的併發情形下線程安全問題? 多線程意味着,來自客戶的多個調用可以在服務器中併發執行。事實上,在同一個servant 中,以及在同一servant 的同一個操作中,都可以有多個請求在並行執行。因此,如果在操作實現中,涉及到對非棧存

原创 netty如何解決粘包和半包

TCP是一個基於“流”的協議,所謂流就像河裏的水沒有嚴格的界限。TCP底層並不瞭解上層業務的具體實現,它會根據TCP緩衝區的具體情況進行劃分,所以就可能會出現業務上一個完整的TCP包可能會拆分成多個小包進行發送,也可能多個小包被組裝成一

原创 long超過16位之後瀏覽器自動截斷問題處理。

java前後端交互的過程中,定義的Long字段超過16位之後,js發生截斷,從而不能跟後臺數據進行匹配。 處理方法 把long型字段轉成string進行處理。(可以使用json註解轉換或者springmvc統一攔截處理) 修改數據庫以及j

原创 linux下rz和sz用發詳解

在ubuntu系統下輸入如下: 1:第一步 clq@clq-virtual-machine:~/node$ sr 程序“sr”尚未安裝。 您可以使用以下命令安裝: sudo apt install surfraw 2:第二步 clq@clq

原创 https雙向認證、證書製作過程

1、生成服務器證書庫 輸入命令: keytool -validity 365 -genkey -v -alias server -keyalg RSA -keystore D:\jks\server.keystore -dname "CN

原创 socket客戶端異常關閉,服務端解決方案

異常如下: java.net.SocketException: Socket is closed at java.net.Socket.getOutputStream(Socket.java:916) ~[na 引起後果 服務端不知