基礎知識點
- 從邏輯結構上來講,他們都屬于線性表結構,所有的數據都是被串起來的,就像羊肉串;
- 從物理內存存儲方面講,數組存儲在連續(xù)的內存區(qū),鏈表是隨機的;鏈表因為是隨機的,就多了一個添加指向下一個節(jié)點的指針,將隨機的節(jié)點串起來的操作,所以在資源消耗上會多一些;
- 在內存管理方面,由于數組是連續(xù)存儲的,在內存預讀時會將數組元素存儲在緩存中,效率會更高;而鏈表是隨機存儲的,無法讀入緩存中,這樣本來訪問效率就低,效率更低了;
- 兩者訪問、增加、刪除的對比:
a. 訪問:數組(隨機訪問)是連續(xù)存儲的,隨意在訪問a[3]和a[999]時間是一樣的,復雜度O(1);鏈表(順序訪問)是隨機存儲的,查找一個節(jié)點需要一個一個順序往下找,因為下一個節(jié)點的位置信息需要從上一個節(jié)點知曉,時間復雜度O(n);
b. 增加/刪除:想要在數組的一個節(jié)點前增加節(jié)點就像是“插隊”后面的所有節(jié)點都要往后哦挪一位,挪動過程如果出現踩腳,還可能會造成元素丟失問題;鏈表本身就是隨機存儲的,新增節(jié)點只需要設置指針即可;
普通類型裝載、反射、序列化、表達式緩存、表達式泛型緩存、AutoMapper
AOP面向切面編程
面向動作行為的一種思想,橫向切面的結構,注重業(yè)務處理中的某個步驟或階段。
控制反轉思想,實現方式包括:Autofac、DI、Unity
- 為了在業(yè)務改變的時候盡量減少改動代碼造成的問題;
- 讓程序之間松散耦合,減少依賴,有利于功能的復用;
- 程序整體結構更加靈活,有利于單元測試。
- 進程間爭搶資源;
- 進程間推進順序非法;
- 授權碼;
- 隱藏式;
- 賬戶密碼;
- 客戶端憑據。
數據庫
asp.net core知識點
- 發(fā)起一個HTTP請求
- 請求通過IIS或者Nginx或者Apache到你的ASP.NET Core應用
- ASP.NET Core Web服務接收這個HTTP請求,將它交給middleware
- middleware處理該請求,并將它交給MVC middleware
- MVC middleware生成一個HTML響應
- 響應通過middleware返回到Web服務
- HTTP響應返回到用戶的瀏覽器
jwt描述
由頭部,負載,簽名 三部分組成
- 頭部包含加密算法和固定的類型jwt的json對象,使用base64URL轉成字符串;
- 負載包含7個官方規(guī)定的字段,還可以添加自定義字段的json對象,使用base64URL轉成字符串;
- 簽名是對頭部和負載信息的簽名,防止篡改;頭部+負載+密鑰 生成簽名字符串,返回給用戶。
框架,未來學習的方向
[數據模型]
[企業(yè)微信賬戶數據]
運維部署
[集群的elk]
[部署nginx]
[https整個的過程 是怎么樣的 openssl是怎么做到安全的]
[linux服務器的配置 安全 遠程安全配置]
如何優(yōu)化性能
遇到的最大問題:
- 在線項目如何保證數據庫遷移時,不斷流的情況下實現最優(yōu)方式
- 如果讓app接口更安全
- 在使用單應用池緩存,在不使用分布式開發(fā)方式下,如何解決多點更新緩存問題
- DDD領域邊界的界定