NET近期面試總結和麵試題

2023-02-19 12:00:31

 一、面試總結

避坑:深圳龍崗李朗YH股份會鴿offer

因為offer被鴿重新找工作,從8號開始面試到12號(11家公司),整體感覺面試難度不大,就是很多公司都是走流程,並不是真的需要人,有些甚至聊一兩句就讓回去等通知。值得注意的是面試之前要了解公司是做什麼的,大概的業務是怎麼樣的,因為簡歷通過一般是技術符合或者某個專案是類似的,這樣可以避免在二面的時候回答不了,而且同一個城市的面試儘量真誠,因為彼此的hr和管理可能都是認識的。

二、面試內容總結:

後端技術要點:物件導向、常見演演算法和實現、常見設計模式、C#基礎、net core(中介軟體、與net異同、IOC/DI、AOP、國產框架(furion))、EFcore和ORM相關、多執行緒、效能優化、快取(Redis、MongoDB )、MQ、微服務、分散式(少)、Docker(少)、CI/CD(少)、Linux(少)、分庫分表(少)
資料庫技術要點:sql語法、索引、查詢優化、儲存過程、主流資料庫的異同(SQL server、MySQL、postgresql(少))、死鎖、事務、函數、B+樹、紅黑樹、B樹(這部分很少)
前端技術要點:vue、jQuery、uniapp
業務相關:1. 是否和客戶或者現場直接溝通需求,是怎麼做的。2. 講解一下專案的功能和場景,是否遇到問題,是怎麼解決的。

面試題(記得的部分):

1.說一下你對物件導向的理解,有什麼特點
參考答案:https://blog.csdn.net/weixin_51201930/article/details/122652397
答:物件導向指的是將現實世界中的事物抽象為一個個物件,每個物件都用對應的方法和屬性,物件導向的三大特性:繼承、封裝、多型
 
2.平時工作中有用到什麼演演算法嗎?
參考答案:https://blog.csdn.net/dreame_life/article/details/104342490 https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
答:遞迴、冒泡、二分。(這個問題我覺得是在問資料結構,可以參考這個https://blog.csdn.net/heyuchang666/article/details/49891635
 
3.常見設計模式有哪些?工作中用到了哪些?
參考答案:https://www.cnblogs.com/abcdwxc/archive/2007/10/30/942834.html
答:介面卡、裝飾器、抽象工廠
 
4.c#的值型別和參照型別有哪些?區別是什麼
參考:https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/value-types
答:值型別有整數型、浮點型、布林型、結構、列舉、元組、char,參照型別有class、interface、delegate、record、dynamic、objectstring
值型別的變數包含型別的範例。 它不同於參照型別的變數,後者包含對型別範例的參照。
值型別均隱式派生自System.ValueType
 
5.c#集合有哪些,區別是什麼?
參考:https://learn.microsoft.com/zh-cn/dotnet/standard/collections/commonly-used-collection-types
答:用的比較多的是:ArrayList、List、Queue、Hashtable、Dictionary,區別是線上程安全和應用場景上,像list的讀取是執行緒安全而arrayList不是,list可以用於泛型進行排序,搜尋,Dictionary用於鍵值對的字典集合。Queue代表了一個先進先出的物件集合。當需要對各項進行先進先出的存取時,則使用佇列。雜湊表中的每一項都有一個鍵/值對。可以直接用雜湊鍵存取集合中的專案。
 
6.char、string、stringbuild有什麼區別。
參考:https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/strings/ https://blog.csdn.net/qq_44034384/article/details/106739003
答:char用於儲存單個字元,string是char物件的依序唯讀集合,每次對string的修改都會建立一個新的string物件,StringBuilder類則不同,每次操作都是對自身物件進行操作,而不是生成新的物件,其所佔空間會隨著內容的增加而擴充,在做大量的修改操作時,不會因生成大量匿名物件而影響系統效能。
 
7..net framework、.net standard、 .net core、.net 5/6/7 區別
答:net framework和net core都可以用於生成多種型別的應用程式。.net framework框架只能在windows上執行。.net core 是一個:適用於windows、linux、macos作業系統的免費開源託管的框架。
.net5/6/7是.net core的穩定版本。.net standard是一套規範,相當於一個關係表,把.net framework的某些程式集對應到.net core
 
8.談談你對netcore 中介軟體和管道的理解
參考:https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-6.0
答:應用的完整請求處理稱為管道,中介軟體是一種裝配到應用管道以處理請求和響應的元件,常用於紀錄檔記錄、異常捕獲、請求攔截、快取處理
 
9.IOC、DI、AOP是什麼,為什麼使用,怎麼用
參考:https://learn.microsoft.com/zh-cn/dotnet/core/extensions/dependency-injection
IOC為控制反轉,它是一種思想,把類的具體實現交給外部容器,而不是由類直接範例化,通過這個反轉,把控制權交給了外部容器,
降低了類與類之間的耦合性
DI為依賴注入,它是IOC的具體實現,它負責把類與類之間的依賴關係結合起來,有三個生命週期:Transient 服務始終不同,每次檢索服務時都會建立一個新範例。
Scoped 服務僅隨新範圍更改,但在某個範圍內是同一範例。
Singleton 服務始終相同,新範例僅建立一次。
原生DI支援構造注入或ServiceProvider.CreateScope.GetService獲取範例,如果需要拓展注入可以使用autofac
AOP面向切面程式設計,通過預編譯方式和執行期間動態代理實現程式功能的統一維護的一種技術。我的理解是在執行時動態對映dll獲取類範例
 
10.EFcore和ORM相關
參考:https://blog.csdn.net/u011854789/article/details/72783902
答:ORM指的是物件導向的物件模型和關係型資料庫的資料結構之間的互相轉換,ef三種程式設計方式:Database First、Model First、Code First
 
11.多執行緒看這個https://www.yuque.com/zhanglin-l1ak6/ll06t7/tkq97k
 
12.redis面試看這個:https://blog.csdn.net/adminpd/article/details/122934938
 
13.什麼是索引,索引有哪幾類(sqlserver)
參考:https://learn.microsoft.com/zh-cn/sql/relational-databases/indexes/indexes?view=sql-server-ver16
答:索參照於加速查詢的效能。它可以更快地從表中檢索資料
 
14.什麼是儲存過程?有哪些優缺點?
答:儲存過程是一組為了完成特定功能的SQL 語句集,儲存在資料庫中
儲存過程的優點
1.效率高
儲存過程編譯一次後,就會存到資料庫,每次呼叫時都直接執行。而普通的sql語句我們要儲存到其他地方(例如:記事本 上),都要先分析編譯才會執行。所以想對而言儲存過程效率更高。
2.降低網路流量
儲存過程編譯好會放在資料庫,我們在遠端呼叫時,不會傳輸大量的字串型別的sql語句。
3.複用性高
儲存過程往往是針對一個特定的功能編寫的,當再需要完成這個特定的功能時,可以再次呼叫該儲存過程。
4.可維護性高
當功能要求發生小的變化時,修改之前的儲存過程比較容易,花費精力少。
5.安全性高
完成某個特定功能的儲存過程一般只有特定的使用者可以使用,具有使用身份限制,更安全。
儲存過程的缺點:
每個資料庫的儲存過程語法幾乎都不一樣,十分難以維護(不通用)
業務邏輯放在資料庫上,難以迭代
手寫:create proc StuProc
@sname varchar(100)
begin
select S#,Sname,Sage,Ssex from student where sname=@sname
end
go
exec StuProc '趙雷' //執行語句
 
15.什麼是死鎖,如何避免。
答:死鎖是指兩個或兩個以上的程序在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。按同一順序存取物件、避免事務中的使用者互動,保持事務簡短並在一個批次處理中,合理設計索引避免全表掃描
 
16.SqlServer函數建立:https://www.cnblogs.com/Brambling/p/6686947.html
 
17.什麼是事務,有哪些特點
答:事務是一種機制、一個操作序列,包含了一組資料庫操作命令。事務把所有的命令作為一個整體一起向系統提交或復原操作請求,即這一組資料庫命令要麼都執行,要麼都不執行,因此事務是一個不可分割的工作邏輯單元。具有 4 個特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和永續性(Durability),這 4 個特性通常簡稱為 ACID。
 
前端部分:vue相關基礎知識、元件通訊和複用、與jQuery的區別、js語法、js基礎、常用ui框架等
還會問到快取中介軟體、訊息中介軟體、紀錄檔中介軟體(紀錄檔上報和統計)、分表分庫、快取永續性和一致性、主從同步、資料讀寫分離、資料庫的B+樹、紅黑樹、B樹等。