程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 面試題整理:C#(一),

面試題整理:C#(一),

編輯:C#入門知識

面試題整理:C#(一),


該系列持續更新,從網上以及身邊收集的問題

 

1.可訪問性級別有哪幾種

public 訪問不受限制。
protected 訪問僅限於包含類或從包含類派生的類型。
internal 訪問僅限於當前程序集。
protected internal 訪問僅限於從包含類派生的當前程序集或類型。
private 訪問僅限於包含類型。

 

2.String和StringBuilder的區別

String類有不可改變性。每次執行字符操作時,都會創建一個新的String對象。
StringBuilder對象在初始化以後只有一個對象。
在頻繁操作或拼接字符串時使用StringBuilder更好

*String是引用類型,存放在堆上

 

3.Struct和Class的區別

class是引用類型,structs是值類型
class創建在堆上。struct創建在棧上
class可以有初始化器,struct不可以有初始化器
class可以有明顯的無參數構造器,但是Struct不可以
class使用前必須實例化,struct不需要
class支持繼承和多態,struct不支持
class的構造器不需要初始化全部字段,struct的構造器必須初始化所有字段
class有面向對象的擴展優勢,struct有性能優勢

 

4.應用程序域?托管代碼?強類型系統?裝箱和拆箱?重載?

應用程序域(AppDomain)

可以看成輕量級的進程,一個進程中可以包含多個應用程序域,一個應用程序域可以裝載一個可執行程序(*.exe)或者多個程序集(*.dll)。這樣可以使應用程序域之間實現深度隔離,即使進程中的某個應用程序域出現錯誤,也不會影響其他應用程序域的正常運作

托管代碼(Managed Code)

中間語言(IL)代碼,由公共語言運行庫(CLR)執行的代碼,而不是由操作系統直接執行,由CLR轉換為計算機語言解釋給計算機

強類型系統

所有變量必須被指定類型,沒有強制類型轉化前,不允許兩種不同類型的變量相互操作

裝箱和拆箱

箱是將值類型轉換為引用類型,拆箱是將引用類型轉換為值類型

重載

同一個類中有兩個或多個名字相同但是參數不同的方法

 

5.CTS、CLS和CLR分別作何解釋?

http://www.cnblogs.com/zagelover/articles/2741370.html

CTS通用類型系統(Common Type System)

描述了類型的定義和行為。

CLS通用語言規范(Common Language Specification)

是CTS的一個子集,它定義了希望編寫在.NET平台上運行的程序的語言所需符合的最小規范

CLR公共語言運行庫(Common Language Runtime)

CLR是CTS的實現,也就是說,CLR是應用程序的執行引擎和功能齊全的類庫,該類庫嚴格按照CTS規范實現。

 

6.GC是什麼

CLR垃圾回收機制,根據"代"自動回收堆上不被引用的對象

 

 

 

To be continue...

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved