日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.Net 面试

發布時間:2023/12/15 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .Net 面试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. js 的閉包概念

閉包的定義:當一個內部函數被其外部函數之外的變量引用時,就形成了一個閉包。

例子:

function A(){function B(){console.log('Hello Closure!');}return B; } var C = A(); C();// Hello Closure!

分析一下:

  • 定義普通函數 A
  • 在 A 中定義普通函數 B
  • 在 A 中返回 B
  • 執行 A,并把 A 的返回結果賦值給變量 C
  • 執行 C?

用途

先了解一下 Javascript 中的 GC 機制:

在 Javascript 中,如果一個對象不再被引用,那么這個對象就會被 GC 回收,否則這個對象一直會保存在內存中。

在上述例子中,B 定義在 A 中,因此 B 依賴于 A ,而外部變量 C 又引用了 B , 所以A間接的被 C 引用。

也就是說,A 不會被 GC 回收,會一直保存在內存中。

原文鏈接:https://www.cnblogs.com/onepixel/p/5062456.html

2.Jquery 如何實現動態事件綁定?

語法:

$(selector).on(event,childSelector,data,function,map) 

event:必需。規定要從被選元素移除的一個或多個事件或命名空間。

childSelector:可選。規定只能添加到指定的子元素上的事件處理程序(且不是選擇器本身,比如已廢棄的 delegate() 方法)。

data:可選。規定傳遞到函數的額外數據。

function:可選。規定當事件發生時運行的函數。

注意:使用 on() 方法添加的事件處理程序適用于當前及未來的元素(比如由腳本創建的新元素)。

$('.class').on("click",function(){……});相當于$('.class').bind("click",function(){……});

3.了解SQL注入?怎么樣避免?

所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。

如何防止SQL注入

  歸納一下,主要有以下幾點:

  1.永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和雙引號進行轉換等。

  2.永遠不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取。

  3.永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接。

  4.不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。

  5.應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝

可參考此文:https://www.cnblogs.com/sdya/p/4568548.html

4.redis 和cache 的區別?

1、 Redis和cache都是將數據存放在內存中,都是內存數據庫。不過cache還可用于緩存其他東西,例如圖片、視頻等等。?

2、Redis不僅僅支持簡單的k/v類型的數據,同時還提供list,set,hash等數據結構的存儲。?

3、虛擬內存-Redis當物理內存用完時,可以將一些很久沒用到的value 交換到磁盤?

4、過期策略–cache在set時就指定,例如set key1 0 0 8,即永不過期。Redis可以通過例如業務配置進行設定

5、分布式–設定cache集群,利用magent做一主多從;redis可以做一主多從。都可以一主一從?

6、存儲數據安全–cache掛掉后,數據沒了;redis可以定期保存到磁盤(持久化)?

7、災難恢復–cache掛掉后,數據不可恢復; redis數據丟失后可以通過aof恢復?

8、Redis支持數據的備份,即master-slave模式的數據備份。

5.C#中,const 和 readonly 的區別?

1.常量必須在聲明時就被初始化,指定了值后就不能修改了.只讀字段可以在聲明時被初始化,也可以在構造函數中指定初始化的值,在構造以后值就不能修改.

2.常量是靜態的,而只讀字段可以是靜態和動態的

3.Const可以用在字段和局部變量,readonly只可以修飾字段

6.怎么建索引,注意點在哪?好處?

創建索引的好處
①通過創建索引,可以在查詢的過程中,提高系統的性能

②通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性

③在使用分組和排序子句進行數據檢索時,可以減少查詢中分組和排序的時間

創建索引的壞處
①創建索引和維護索引要耗費時間,而且時間隨著數據量的增加而增大

②索引需要占用物理空間,如果要建立聚簇索引,所需要的空間會更大

③在對表中的數據進行增加刪除和修改時需要耗費較多的時間,因為索引也要動態地維護

應該在哪些列上創建索引呢
①經常需要搜索的列上

②作為主鍵的列上

③經常用在連接的列上,這些列主要是一些外鍵,可以加快連接的速度

④經常需要根據范圍進行搜索的列上

⑤經常需要排序的列上

⑥經常使用在where子句上面的列上

不應該在哪些列上創建索引
①查詢中很少用到的列

②對于那些具有很少數據值的列.比如人事表的性別列,bit數據類型的列

③對于那些定義為text,image的列.因為這些列的數據量相當大

④當對修改性能的要求遠遠大于搜索性能時.因為當增加索引時,會提高搜索性能,但是會降低修改性能

詳細請看此文:https://blog.csdn.net/qq_36071795/article/details/83956068

7.如何避免事務死鎖?

先介紹死鎖的四個必要條件(只要破壞了其中任何一個條件,死鎖就不可能發生):

  • 互斥(Mutual exclusion):存在這樣一種資源,它在某個時刻只能被分配給一個執行者(也稱為線程)使用;
  • 持有(Hold and wait):當請求的資源已被占用從而導致執行者阻塞時,資源占用者不但無需釋放該資源,而且還可以繼續請求更多資源;
  • 不可剝奪(No preemption):執行者獲得到的互斥資源不可被強行剝奪,換句話說,只有資源占用者自己才能釋放資源;
  • 環形等待(Circular wait):若干執行者以不同的次序獲取互斥資源,從而形成環形等待的局面,想象在由多個執行者組成的環形鏈中,每個執行者都在等待下一個執行者釋放它持有的資源。
  • 解決方法:

    1 使用事務時,盡量縮短事務的邏輯處理過程,及早提交或回滾事務; (細化處理邏輯,執行一段邏輯后便回滾或者提交,然后再執行其它邏輯,直到事物執行完畢提交)
    2 設置死鎖超時參數為合理范圍,如:3分鐘-10分種;超過時間,自動放棄本次操作,避免進程懸掛;
    3 優化程序,檢查并避免死鎖現象出現;
    4 .對所有的腳本和SP都要仔細測試,在正是版本之前。
    5 所有的SP都要有錯誤處理(通過@error)
    6 一般不要修改SQL SERVER事務的默認級別。不推薦強行加鎖

    8. session的實現原理

    A、什么是Session?

      Session字面含義就是會話。由于HTTP是無狀態協議,為了保持瀏覽器與服務器之間的聯系,才有了Session。Session就是用于在服務器端保存用戶狀態的協議。通常用來保存用戶的登錄狀態。

    B、Session是如何實現的?

      Session內容保存在服務器端的,通常是保存在內存中,當然也可以保存在文件、數據庫等等。客戶端跟服務器端通過SessionId來關聯, SessionId通常以Cookie的形式存儲在客戶端。每次HTTP請求, SessionId都會隨著Cookie被傳遞到服務器端,這行就可以通過SessionId取到對應的信息,來判斷這個請求來自于哪個客戶端/用戶。

    使用建議/經驗

    1、建議&經驗

    • Session中保存的數據的大小要考慮到存儲上線不論是內存還是數據庫
    • Session中不要存儲不可恢復的內容
    • 依賴Session的關鍵業務一定要確保客戶端開啟了Cookie
    • 注意Session的過期時間
    • 在負載均衡的情況下,由于存在Web服務器內存中的Session無法共享,通常需要重寫Session的實現。

    2、常見的Session丟失的問題

    • Session內容的丟失都是有原因的,通常都是由于Web服務器的重啟造成的,比如IIS、Tomcat的重啟

    ?

    轉載于:https://www.cnblogs.com/GuDuYing/p/11031479.html

    總結

    以上是生活随笔為你收集整理的.Net 面试的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。