.NET出現頻率非常高的筆試題
一、.net基礎
1、 a=10,b=15,請在不使用第三方變數的情況下,把a、b的值互換
答:小學演算法,加法交換律和加法結合律
int a=a+b; int b=a-b;int a=a-b;
2、session喜歡丟值且佔記憶體,Cookis不安全,請問用什麼辦法代替這兩種原始的方法
答:redis 或者 memcache。當然,微軟也提供瞭解決方案。iis中由於有程式回收機制,系統繁忙的話Session會丟失,可以用Sate server或SQL Server資料庫的方式儲存Session不過這種方式比較慢,而且無法捕獲Session的END事件。
3、如何處理幾十萬條併發資料?
答:用儲存過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個儲存過程來獲取.
4、62-63=1 等式不成立,請移動一個數字(不可以移動減號和等於號),使得等式成立,如何移動?
答案:62移動成2的6次方
5、<%# %> 和 <% %> 有什麼區別?
答:<%# %>表示繫結的資料來源,<% %>是伺服器端程式碼塊
6、ASP.Net頁面生命週期簡單描述
每個頁面的生命週期為使用者的每一次訪問,也就是說每一次客戶端與伺服器之間的一個往返過程.全域性變數的生命週期在此之間. 1. Page_Init(); 2. Load ViewState and Postback data; 3. Page_Load(); 4. Handle control events; 5. Page_PreRender(); 6. Page_Render(); 7. Unload event; 8. Dispose method called;
7、寫出程式的輸出結果
public abstract class A { public A() { Console.WriteLine(‘A’); } public virtual void Fun() { Console.WriteLine(“A.Fun()”); } } public class B: A { public B() { Console.WriteLine(‘B’); } public new void Fun() { Console.WriteLine(“B.Fun()”); } public static void Main() { A a = new B(); a.Fun(); } }
A B A.Fun()
8、 寫出程式的輸出結果:
public class A { public virtual void Fun1(int i) { Console.WriteLine(i); } public void Fun2(A a) { a.Fun1(1); Fun1(5); } } public class B : A { public override void Fun1(int i) { base.Fun1 (i + 1); } public static void Main() { B b = new B(); A a = new A(); a.Fun2(b); b.Fun2(a); } }
2 5 1 6
9、在下面的例子裡
using System; class A { public A() { PrintFields(); } public virtual void PrintFields(){} } class B:A { int x=1; int y; public B() { y=-1; } public override void PrintFields() { Console.WriteLine("x={0},y={1}",x,y); } }
當使用new B()建立B的例項時,產生什麼輸出?
答:X=1,Y=0;x= 1 y = -1
10、如何提高.NET的效能
1. 使用非同步方式呼叫Web服務和遠端物件 只要有可能就要避免在請求的處理過程中對Web服務和遠端物件的同步呼叫,因為它佔用的是的ASP.NET 執行緒池中的工作執行緒,這將直接影響Web伺服器響應其它請求的能力。 2. 使用適當的Caching策略來提高效能 3. 判斷字串,不要用""比較。 //避免 if(strABC!=null && strABC!="") {} //推薦 if(!string.IsNullOrEmpty(strABC)) {} 4. 頁面優化 5.用完馬上關閉資料庫連線 6. 儘量使用儲存過程,並優化查詢語句 7. 只讀資料訪問用SqlDataReader,不要使用DataSet
11、說出一些資料庫優化方面的經驗?
索引內部原理:想象成Dictionary,插入、刪除、更新的速度慢了,加上索引也多佔用了空間,查詢的速度快了。加上索引以後速度提升非常明顯。 (1)在經常檢索的欄位上(select * from Person where Name=@Name)使用索引提高查詢速度。 (2)select中只列出必要的欄位,而不是*。 (3)避免隱式型別轉換造成的全表掃描,在索引上使用函式也會造成全表掃描(因為索引只是為欄位建立的,一旦使用表示式或者函式,那麼索引就是失效了,當然也可以使用“函式索引”、 “表示式索引”解決這個問題),使用索引不一定能提高查詢速度。 (4)避免在索引列上使用計算(where Name+'A'=@MyName)
二、程式設計
1.請程式設計實現一個氣泡排序演算法?
Int[] arrAge = new int[5]; //給陣列元素賦初始值 For(int i=0; i<5; i++) { Int intTemp = 0; For(int j=i+1; j<5; j++) { If(arrAge[i]<arrAge[j]) { intTemp = arrAge[i]; arrAge[i] = arrAge[j]; arrAge[j] = intTemp; } } }
2. 一列數的規則如下: 1、1、2、3、5、8、13、21、34…… 求第30位數是多少, 用遞迴演算法實現。
public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i <= 0) return 0; else if(i > 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } }
3、編寫一個單例(Singleton)類。
public FileManager { private FileManager(){} public static FileManager Instance = new FileManager(); }
4. 程式設計: 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)
要求: 1.要有聯動性,老鼠和主人的行為是被動的。2.考慮可擴充套件性,貓的叫聲可能引起其他聯動效應。
要點:1. 聯動效果,執行程式碼只要執行Cat.Cryed()方法。2. 對老鼠和主人進行抽象評分標準: <1>.構造出Cat、Mouse、Master三個類,並能使程式執行(2分)<2>從Mouse和Master中提取抽象(5分)<3>聯動效應,只要執行Cat.Cryed()就可以使老鼠逃跑,主人驚醒。(3分)
設計方法一
public interface Observer { void Response(); //觀察者的響應,如是老鼠見到貓的反映 } public interface Subject { void AimAt(Observer obs); //針對哪些觀察者,這裡指貓的要撲捉的物件—老鼠 } public class Mouse : Observer { private string name; public Mouse(string name, Subject subj) { this.name = name; subj.AimAt(this); } public void Response() { Console.WriteLine(name + ” attempt to escape!”); } } public class Master : Observer { public Master(Subject subj) { subj.AimAt(this); } public void Response() { Console.WriteLine(“Host waken!”); } } public class Cat : Subject { private ArrayList observers; public Cat() { this.observers = new ArrayList(); } public void AimAt(Observer obs) { this.observers.Add(obs); } public void Cry() { Console.WriteLine(“Cat cryed!”); foreach (Observer obs in this.observers) { obs.Response(); } } } class MainClass { static void Main(string[] args) { Cat cat = new Cat(); Mouse mouse1 = new Mouse(“mouse1″, cat); Mouse mouse2 = new Mouse(“mouse2″, cat); Master master = new Master(cat); cat.Cry(); } }
設計方法二: 使用event — delegate設計
public delegate void SubEventHandler(); public abstract class Subject { public event SubEventHandler SubEvent; protected void FireAway() { if (this.SubEvent != null) this.SubEvent(); } } public class Cat : Subject { public void Cry() { Console.WriteLine(“cat cryed.”); this.FireAway(); } } public abstract class Observer { public Observer(Subject sub) { sub.SubEvent += new SubEventHandler(Response); } public abstract void Response(); } public class Mouse : Observer { private string name; public Mouse(string name, Subject sub) : base(sub) { this.name = name; } public override void Response() { Console.WriteLine(name + ” attempt to escape!”); } } public class Master : Observer { public Master(Subject sub) : base(sub){} public override void Response() { Console.WriteLine(“host waken”); } } class Class1 { static void Main(string[] args) { Cat cat = new Cat(); Mouse mouse1 = new Mouse(“mouse1″, cat); Mouse mouse2 = new Mouse(“mouse2″, cat); Master master = new Master(cat); cat.Cry(); } }
三、資料庫操作
1、資料庫查詢正表變橫標,橫表變正表
2、參考 走向面試之資料庫基礎:一、你必知必會的SQL語句練習-Part 2
四、IQ和邏輯推理
結語
最後,我這裡再推薦一本《程式設計師面試寶典 第三版 PDF中文版》
祝願所有跳槽或準備跳槽的朋友,都能夠找到自己理想的工作,越跳越高,越來越好!
相關文章
- 出現頻率最高的筆試題 (轉)筆試
- 前端高頻筆試題之HTML/CSS部分前端筆試HTMLCSS
- 海量資料場景面試題:出現頻率最高的 100 個詞面試題
- 大廠面試經:高頻率JVM面試問題整理!面試JVM
- 15道使用頻率極高的基礎演算法題演算法
- 3 .NET Core筆試題筆試
- 高頻面試題面試題
- 高頻率使用的免費API介面分享API
- matlab統計一個陣列中各元素出現的頻數、頻率Matlab陣列
- 那些不能遺忘的知識點回顧——C/C++系列(筆試面試高頻題)C++筆試面試
- 統計一個字串出現頻率最高的字母/數字字串
- 黑客書架上出現頻率最高的9部半書籍黑客
- 使用頻率比較高的PHP函式方法PHP函式
- MySQL高頻面試題MySql面試題
- C語言基礎例項—3句解決數字出現頻率問題C語言
- JavaScript高頻面試試題2——2020.12.04JavaScript面試
- Java集合高頻面試題Java面試題
- Java高頻面試題---RabbitMQJava面試題MQ
- Java高頻面試題---MySQLJava面試題MySql
- Mac使用技巧:Excel中使用頻率較高的快捷鍵MacExcel
- 【RAC】使用頻率較高的CRS維護命令總結
- go最大堆 實現頻率排序Go排序
- matlab統計 頻數、頻率和累積頻率Matlab
- GO web程式代理繫結域名非常頻繁404的問題GoWeb
- 前端高頻面試題JavaScript篇前端面試題JavaScript
- 11個提問頻率最高的PHP面試題PHP面試題
- 高頻面試考題:荷蘭旗問題面試
- 【谷歌面試題】找出二叉查詢樹中出現頻率最高的元素谷歌面試題
- 傅立葉能否還原出原始的所有訊號頻率
- 使用 CSS 輕鬆實現高頻出現的各類奇形怪狀按鈕CSS
- MySQL高頻面試題的靈魂拷問MySql面試題
- CPU主頻,倍頻,外頻,系統匯流排頻率,前端匯流排頻率前端
- MATLAB自帶的函式tabulate統計一個陣列中各數字(元素)出現的頻數、頻率Matlab函式陣列
- 描述高頻題之佇列&棧佇列
- MySQL 高頻面試題,都在這了MySql面試題
- 二叉樹高頻題(下)二叉樹
- Selenium 高頻面試題及答案面試題
- 程式出錯後,程式設計師給測試人員的20條高頻回覆程式設計師