原创 c#四種線程安全的懶加載單例模式(Lazy、靜態內部類、CAS、雙重校驗)

//靜態內部類 public class SingleTon1 { private SingleTon1() { } public static

原创 Java線上問題排查彙總:cpu飆高、內存飆高、程序未知異常、遠程調試、程序運行緩慢、鏈路追蹤、APM

這部分內容涉及的知識點比較多,我沒能一次性把它們全部寫完,但是會盡快更新完善。 一、cpu和內存飆高。 1)內存飆高問題可以使用MAT查看原因,CPU飆高可以使用jstack查看原因,我把具體的方法單獨寫到了我的這篇博客裏:https:/

原创 C#線上問題排查彙總:cpu飆高、內存飆高、程序未知異常、遠程調試,程序運行緩慢、程序崩潰、APM

這篇文章因爲涉及的點比較多,所以我沒有一次完成,在持續補充中,有些章節缺失,我在儘快補充中 一、C#cpu飆高和內存飆高。 1)Debug環境下的飆高 Visual Studio的新版本自帶了診斷工具,如果你寫的c#程序在調試階段就表現出

原创 Java使用JNI自定義native方法

IDE版本:IntelliJ Idea 2019、Visual Studio 2019 JDK版本:JDK 1.8 1)使用idea創建一個簡單的java項目NativeTest。如下: Main類的代碼如下: package com

原创 MySql監控(普通日誌、慢查詢日誌、Dashboard、Performance Reports等)

MySql版本:Server version: 8.0.19 MySQL Community Server 圖形化界面工具:MySql Workbeach 8.0 CE 測試在Docker環境下進行,如何使用Docker安裝Mysql,請

原创 Java的JMC和飛行記錄器FlightRecord

JRE版本:oracle jre8 Docker版本:docker-ce 19.03.08 CentOS版本:centos8 飛行記錄器屬於JMC,JMC的全稱是Java Mission Control,在jdk的安裝目錄裏面就可以找到這

原创 使用Visual Studio 19調試.net程序的dump文件

應用程序如果運行期間崩潰了,大概率是來不及記錄日誌的,大部分情況下,進程並不會立即退出,而是彈出一個錯誤的彈窗。如果錯誤彈窗裏面的信息有限,這個時候可以利用小型轉儲文件進行調試,查看崩潰那一刻,程序正在幹什麼。轉儲文件就相當於快照,記錄的

原创 C#線上問題排查彙總:cpu飆高、內存飆高、程序未知異常、遠程調試,程序運行緩慢

一、C#cpu飆高和內存飆高。 1)Debug環境下的飆高 Visual Studio的新版本自帶了診斷工具,如果你寫的c#程序在調試階段就表現出了內存飆高或者cpu飆高,那麼你用vs的診斷工具,就可以找出是哪塊代碼引起的。比如cpu飆高

原创 Java線上問題排查彙總:cpu飆高、內存飆高、程序未知異常、遠程調試,程序運行緩慢

一、cpu和內存飆高。 內存飆高問題可以使用MAT查看原因,CPU飆高可以使用jstack查看原因,我把具體的方法單獨寫到了我的這篇博客裏:https://blog.csdn.net/dap769815768/article/detail

原创 迭代器(C#和Java)

迭代器是一種設計模式,不管是Java還是C#,基本都是和foreach配合使用的,Java又略有不同。迭代器存在的目的是不給用戶看到原始數據,客戶需要數據的時候,由提供者提供給客戶一個迭代器,客戶通過這個迭代器來拿數據。不管內部的數據結構

原创 c#使用EntityFramework

IDE:VS2019 .Net版本:.Net Core3.1 數據庫:Sqlite 1.創建一個.net core控制檯的項目,並創建兩個model,TeacherModel和StudentModel,其中主程序集引用Models程序集:

原创 c#中深拷貝和淺拷貝

c#的object類提供了一個淺拷貝的方法MemberwiseClone,該方法克隆的是原始對象的獨立副本,但是這個副本和原始對象會共同指向同一個引用類型屬性的引用。比如官方提供了一個例子: public class IdInfo {

原创 c#中ReferenceEquals和Equals的區別

參考下面的代碼: int i = 0; Console.WriteLine(Object.ReferenceEquals(i, i)); Console.Write

原创 使用.net技術實現一個簡易遠程監控軟件

前端實現技術:Winform 後端實現技術:asp.net core 3.1 一、前端實現 採用winform實現一個簡易的後臺任務程序,其功能主要是定時截屏,然後發送給服務器,並且程序在任務管理器隱藏,但並沒有在進程裏面隱藏,實現開機啓

原创 .net爲程序集簽名

2.給程序集簽名 1)打開開始菜單,搜索“開發人員命令提示符”: 2)按照如下的順序生成一個test.snk的祕鑰: 在黃色標記的路徑下可以找到生成的兩個文件: 3)隨便用vs創建一個項目,在項目上選擇右鍵,屬性: 勾選爲程序集簽