原创 讀懂操作系統之內存管理總結(八)

前言 內存由大量的字或字節組成,每個字或字節都有自己的地址。CPU根據程序計數器的值從內存中提取指令,這些指令可能會導致需要從特定的存儲器地址進行額外的加載並將其存儲到特定的存儲器地址。通常,程序以二進制可執行文件的形式駐留在磁盤上,該程序

原创 讀懂操作系統之快表(TLB)原理(七)

前言 前不久、我們詳細分析了TLB基本原理,本節我們通過一個簡單的示例再次敘述TLB的算法和原理,希望藉此示例能加深我們對TLB(又稱之爲快表,深入理解計算機系統(第三版)又稱之爲翻譯後備緩衝區)的理解。   使用分頁作爲支持虛擬內存的核心

原创 Java入門系列之重寫

前言 關於所有Java系列文章面向有一定基礎的童鞋,所寫每一篇希望有一定含金量,有些內容可能會從Java整個語法全局考慮穿插後續要講解的內容以成系統,若不理解,請看完後再學習。上一節我們講解完了final關鍵字,本節我們繼續來對比講解Jav

原创 Java入門系列之final

前言 在C#經典面試中摻雜過Java的final關鍵字,主要用於類不能被繼承,在C#則是利用關鍵字seal修飾類爲密封類,而在Java中的final關鍵字的具體用法包含C#中const、readonly、seal三者使用之和,本節我們來聊聊

原创 Java入門系列之訪問修飾符作用範圍

前言 之前以爲Java和C#中訪問修飾符差不多一樣,後面才瞭解到還是有些差異,本節只講解學習Java中訪問修飾符一些需要注意的地方或者從概念上不太好理解我們會通過實際例子來說明,若有錯誤之處,還請批評指正。 訪問修飾符 Java默認(Def

原创 探討NET Core數據進行3DES加密或解密弱密鑰問題

前言 之前寫過一篇《探討.NET Core數據進行3DES加密和解密問題》,最近看到有人提出弱密鑰問題,換個強密鑰不就完了嗎,猜測可能是與第三方對接導致很無奈不能更換密鑰,所以產生本文解決.NET Core中3DES弱密鑰問題,寫下本文,希

原创 C#由轉換二進制所引起的思考,瞭解下?

前言 最近遇到很有意思轉換二進制的問題,有部分童鞋儼然已瞭解,可能也有一部分童鞋沒碰到過也就不知情,這裏我們來深入學習下轉換二進制所帶來的問題。 二進制轉換問題 假設現在我們有一個int類型的數據,它的範圍區間暫且定在0-15之間,我們需要

原创 EntityFramework Core 遷移忽略主外鍵關係

前言 本文來源於一位公衆號童鞋私信我的問題,在我若加思索後給出了其中一種方案,在此之前我也思考過這個問題,藉此機會我稍微看了下,目前能夠想到的也只是本文所述方案。 爲何要忽略主外鍵關係 我們不僅疑惑爲何要忽略主外鍵關係呢?不難想到,相對於大

原创 讀懂操作系統之虛擬內存頁表(五)

前言 在一個擁有32位的地址空間,4KB的頁面(212),並且每個PTE爲4個字節,那麼頁表大小爲4MB(4 * 232 / 212),但若爲64位地址空間,4KB的頁面(212)且每個PTE爲4字節,那麼頁表大小爲16TB(4 * 264

原创 .NET Core請求控制器Action方法正確匹配,但爲何404?

前言 有些時候我們會發現方法名稱都正確匹配,但就是找不到對應請求接口,所以本文我們來深入瞭解下何時會出現接口請求404的情況。 匹配控制器Action方法(404) 首先我們創建一個web api應用程序,我們給出如下示例控制器代碼 [A

原创 .NET Core Hangfire週期性作業調度問題

前言 四月中旬Hangfire團隊發佈了1.7.11版本,在使用週期性作業調度過程中發現一個問題,這個問題應該一直未解決,故做此記錄,希望遇到的童鞋根據項目業務而避開這個問題。 週期性作業調度 我們依然是在控制檯中進行測試,下載所需包請參考

原创 深入瞭解C#(TPL)之Parallel.ForEach異步

前言 最近在做項目過程中使用到了如題並行方法,當時還是有點猶豫不決,因爲平常使用不多, 於是藉助週末時間稍微深入了下,發現我用錯了,故此做一詳細記錄,希望對也不是很瞭解的童鞋在看到此文後不要再犯和我同樣的錯誤。 並行遍歷異步表象 這裏我們就

原创 讀懂操作系統之虛擬內存TLB與緩存(cache)關係篇(四)

前言 前面我們講到通過TLB緩存頁表加快地址翻譯,通過上一節緩存原理的講解爲本節做鋪墊引入TLB和緩存的關係,同時我們來完整梳理下從CPU產生虛擬地址最終映射爲物理地址獲取數據的整個過程是怎樣的,若有錯誤之處,還請批評指正。 TLB和緩存串

原创 讀懂操作系統之緩存原理(cache)(三)

前言 本節內容計劃是講解TLB與高速緩存的關係,但是在涉及高速緩的前提是我們必須要瞭解操作系統緩存原理,所以提前先詳細瞭解下緩存原理,我們依然是採取循序漸進的方式來解答緩存原理,若有敘述不當之處,還請批評指正。 緩存原理 高速緩存被劃分爲多

原创 讀懂操作系統之虛擬內存地址翻譯原理分析篇(二)

前言 上一節我們整體概括通過MMU將虛擬地址翻譯爲物理地址的轉換,這個過程都是按序就班的進行,一切都是基於已提前創建、分配虛擬頁、物理頁以及命中的前提,只是給和我一樣沒怎麼系統學習操作系統的童鞋首先在腦海裏有個大概的印象,本節我們從源頭開始