關於面試踩到的×××~

有多少人還努力在求職的道路上,獻上本人面試踩到的地雷
 
1:ref和out有什麼區別。
不少人應該可能都沒有接觸過這種用法, 這兩個關鍵字均是傳址的用法。
         class Program
        {
                 public static void Main(String[] args)
                {
                         int r, o;
                         int m=0;
                        r = RefValue(1, ref m);
                        Console.WriteLine( "after Ref:m={0}",m);
                        o = OutValue(1, out    m);
                        Console.WriteLine( "after Out:m={0}", m);
                        Console.WriteLine( "ref={0}", r);
                        Console.WriteLine( "out={0}", o);
                        Console.ReadLine();
                }
                 public static int RefValue( int i, ref int j)
                {
                        
                         return i + j;
                }
                 public static int OutValue( int i, out int j)
                {
                        j = 222;
                         return i + j;
                }
        }
貼上我回到家測試用的代碼,在方法RefValue和OutValue中,OutValue的參數J被賦值222,由於out的用法就是「只出不進」,如OutValue(1,out m) 雖然m爲0,不過因爲關鍵字out 定義int j,因此m的值就被擋在了函數的外面,而在函數內部就必須給j賦值爲222,將m的值轉成了j的值222(事實上,是讓m指向了j的地址),ref也是傳址方式,不一樣的是在上面代碼中,RefValue中沒有對j進行賦值,調試則不會出現錯誤提示,由於調用RefValue(1,ref m)時,0的寫進了方法裏面,因此在返回的結果就是1+0=1,若在RefValue方法裏面給j賦值,結果會和out輸出的結果相同,總結就是你們常見的:ref可進可出,out只出不進
 
2:傳址和傳值的區別。
(看到這個題目直接讓我曲解了他們的意思)
傳址就是有變量A=5,B=6,把A的地址指向B,再取出A的值爲6
傳值就是有變量A=5,B=6,把B的值賦值給A,再輸出A的值爲6
 
3:數據庫鏈接
(原先的題目是寫一段ODBC的數據庫鏈接,因爲我忘記了,就用ADO.NET代替了,結果還少寫了close())
try
{
string source= "xxxx;server=xxxx;uid=xx;xxxxx"
SqlConnection conn = new SqlConnnection(source);
conn.open();
}
catch(e)
{
}
finally
{
conn.close();
}
一下的結果會是比較好的形式。
 
4:接口和抽象類的區別
這種題目須要瞭解接口和抽象類的定義和概念,才能比較好的掌握回答的尺度,答案,網絡上漫天飛,我就很少說了。
 
5:遞歸求值
這個是比較常見的問題,網上也會有不少不少,好比:1,1,2,3,5,8,13.....問這樣的序列第三十位的值。
public 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);
}
 
6:堆和棧的區別
簡單來解釋就是:棧用於存放值類型(如int float***);堆用於存放引用類型(object)
棧是由編譯器自動分配釋放的,而堆是由程序員分配釋放的
(解釋的比較爛,求各位幫忙完善,簡單易懂最好)
 
題目網上有不少,重要的是在面試的時候不光會寫,還要真的能夠解釋,那纔會吸引到別人。
 
7:ReferenceEquals()和Equals()的區別
簡單來講,Reference 應用於對象類型,Equals應用於值類型的比較
int v=5;ReferenceEquals(v,v)返回false結果    對比值類型
ReferenceEquals(null,null)返回true結果      對比引用類型
int v=5;Equals(v,v)返回true結果
相關文章
相關標籤/搜索