大型公司.net面試題

 
EQUALS() AND ==

1)比較方式角度:
= =是面向過程的操作符;equals是面向對象的操作符
= =不屬於任何類,equals則是任何類(在Java中)的一個方法;
我們可以1)Primitive1 (基本類型)= = Primitive2(基本類型);
         2)Object Reference1(對象引用)= = Object Reference2(對象引用)
         3)Object Reference1 (對象引用) .equals(Object Reference2 (對象引用))
           這三種比較
           但卻不能Primitive1 (基本類型).equals( Primitive2(基本類型));
 對於基本類型,沒有面向對象中發送消息一說,自然也不會有
方法成員。
 
2)比較目的角度:
1)    如果要比較兩個基本類型是否相等,請用= =;
2)    如果要比較兩個對象引用是否相等,請用= =;
3)    如果要比較兩個對象(邏輯上)是否一致,請用equals;
 
第二節:對兩個對象(邏輯上)是否一致的闡釋:
   有人會問:在C++中, 比較兩個對象相等不是也可以用==嗎?我知道您是指運算符重載,但是很遺憾,Java中不支持運算符重載(java中亦有重載過運算符,他們是“+”,“+=”,不過也僅此兩個,而且是內置實現的);所以,對象的是否相等的比較這份責任就交由  equals()來實現 。    
這個“邏輯上”其實就取決於人類的看法,實際開發中,就取決於用戶的需求;
有人會有看法:“取決於人類的看法”太過寬泛和不嚴肅,如果某人要兩件
風牛馬不相及的事物也相等,equals是否也能作出這樣的比較呢?我們說可以的
下面這個例子說明了這一點:
 
class Horse {
       String Type;
       int Legs;
  //相等的標準:腿的數目相等
       public boolean equals(Object o){
          if(this.Legs==((Cattle)o).Legs){
             return true;
          }
       return false;
}
public Horse(String Type,int legs){
           this.Type=Type;
        this.Legs=legs;
}


l          equals()與==:
比較物件內容
比較是否同一物件
equals()
==
 

String str1 = new String(“abc”);
String str2 = new String(“abc”);
String str3 = str1;
String str4 = “abc”;
String str5 = “abc”;
 

 

str1 / str2
str1 / str3
str4 / str5
str1 / str4
Equals
true
true
true
true
==
false
true
true
False
 
l           String str = "abc" String str = new String("abc")在做”==”得到的結果不同。
l     long i = 1; double j = 1; // i == j 為true。(因為primitive data type,值相等即為true)
l           Long a = new Long(3L); Long b = new Long(3L); Double x = new Double(3.0); //a == bfalse(因為reference type,非同一個物件了)//a == xcompile err(ax無繼承關係無法convertible)
l           ==的左右兩邊若為不相容的型別轉換,則會發生compiler errors,但若是equals,當物件不相同時equal()會回傳false,不會造成編譯錯誤(equals Float object and Double object will always return false)
l           compares(equals) a Float object and a Double object which will always return false
l           每個java class都有一個”equals()”method,這個method是使用”==”來比較兩個reference var所存的值(即是否指向一物件)若要比較content是否相同,必須override equals() method,同時也必須override定義於Object class”hashcode()”method,否則java collection API操作這個classobject時會錯。
l           StringDateFile8wrapper classes都已override equals() method
如果hashCode值相同,那object”可能相同(equal);如果hashCode值不相同,那object”一定不相同。
1. new 關鍵字用法 (1)new 運算符 用於創建對象和調用構造函數。 (2)new 修飾符 用於向基類成員隱藏繼承成員。 (3)new 約束 用於在泛型聲明中約束可能用作類型參數的參數的類型。 2.如何把一個Array複製到ArrayList裏 (1) 實現1 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(); list.AddRange(s); (2)實現2 string[] s ={ "111", "22222" }; ArrayList list = new ArrayList(s); 3.DataGrid的Datasouse可以連接什麼數據源 l DataTable l DataView l DataSet l DataViewManager l 任何實現IListSource接口的組件 l 任何實現IList接口的組件 4.概述反射和序列化反射 公共語言運行庫加載器管理應用程序域。這種管理包括將每個程序集加載到相應的應用程序域以及控制每個程序集中類型層次結構的內存佈局。 程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然後,可以調用類型的方法或訪問其字段和屬性。 序列化 序列化是將對象狀態轉換爲可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換爲對象。這兩個過程結合起來,可以輕鬆地存儲和傳輸數據。 5.概述O/R Mapping 的原理利用反射,配置將對象和數據庫表映射。 6. 可訪問性級別有哪幾種 l public 訪問不受限制。 l protected 訪問僅限於包含類或從包含類派生的類型。 l internal 訪問僅限於當前程序集。 l protected internal 訪問僅限於從包含類派生的當前程序集或類型。 l private 訪問僅限於包含類型。 7. sealed 修飾符有什麼特點 sealed 修飾符可以應用於類、實例方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其本身不能在任何派生類中進一步重寫。當應用於方法或屬性時,sealed 修飾符必須始終與 override一起使用。 8.列舉ADO.NET中的共享類和數據庫特定類共享類 DataSet DataTable DataRow DataColumn DataRelation Constraint DataColumnMapping DataTableMapping 特定類 (x)Connection (x)Command (x)CommandBuilder (x)DataAdapter (x)DataReader (x)Parameter (x)Transaction 9.執行下面代碼後: String strTemp ="abcdefg 某某某"; Int i=System.Text.Encoding.Default.GetBytes(strTemp).Length; Int j=strTemp.Length; 問: i=? j=? i=(14 ) ;j=(11 ) 中文兩個字節 10.C#中,string str = null 與 string str ="",請儘量用文字說明區別。 string str =""初始化對象分配空間 而string str=null初始化對象 11.詳述.NET裏class和struct的異同結構與類共享幾乎所有相同的語法,但結構比類受到的限制更多: 儘管結構的靜態字段可以初始化,結構實例字段聲明還是不能使用初始值設定項。 結構不能聲明默認構造函數(沒有參數的構造函數)或析構函數。 結構的副本由編譯器自動創建和銷燬,因此不需要使用默認構造函數和析構函數。實際上,編譯器通過爲所有字段賦予默認值(參見默認值表)來實現默認構造函數。結構不能從類或其他結構繼承。 結構是值類型 -- 如果從結構創建一個對象並將該對象賦給某個變量,變量則包含結構的全部值。複製包含結構的變量時,將複製所有數據,對新副本所做的任何修改都不會改變舊副本的數據。由於結構不使用引用,因此結構沒有標識 -- 具有相同數據的兩個值類型實例是無法區分的。C# 中的所有值類型本質上都繼承自 valueType,後者繼承自 Object。 編譯器可以在一個稱爲裝箱的過程中將值類型轉換爲引用類型。 結構具有以下特點: l 結構是值類型,而類是引用類型。 l 向方法傳遞結構時,結構是通過傳值方式傳遞的,而不是作爲引用傳遞的。 l 與類不同,結構的實例化可以不使用 new 運算符。 l 結構可以聲明構造函數,但它們必須帶參數。 l 一個結構不能從另一個結構或類繼承,而且不能作爲一個類的基。所有結構都直接繼承自 System.valueType,後者繼承自 System.Object。 l 結構可以實現接口。 l 在結構中初始化實例字段是錯誤的。 12.什麼叫應用程序域?什麼是託管代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?應用程序域 應用程序域爲安全性、可靠性、版本控制以及卸載程序集提供了隔離邊界。應用程序域通常由運行庫宿主創建,運行庫宿主負責在運行應用程序之前引導公共語言運行庫。應用程序域提供了一個更安全、用途更廣的處理單元,公共語言運行庫可使用該單元提供應用程序之間的隔離。 託管代碼 使用基於公共語言運行庫的語言編譯器開發的代碼稱爲託管代碼;託管代碼具有許多優點,例如:跨語言集成、跨語言異常處理、增強的安全性、版本控制和部署支持、簡化的組件交互模型、調試和分析服務等。 裝箱和拆箱 裝箱和拆箱使值類型能夠被視爲對象。對值類型裝箱將把該值類型打包到 Object 引用類型的一個實例中。這使得值類型可以存儲於垃圾回收堆中。拆箱將從對象中提取值類型。 重載 每個類型成員都有一個唯一的簽名。方法簽名由方法名稱和一個參數列表(方法的參數的順序和類型)組成。只要簽名不同,就可以在一種類型內定義具有相同名稱的多種方法。當定義兩種或多種具有相同名稱的方法時,就稱作重載。 CTS通用類型系統 (common type system) 一種確定公共語言運行庫如何定義、使用和管理類型的規範。 CLR公共語言運行庫 .NET Framework 提供了一個稱爲公共語言運行庫的運行時環境,它運行代碼並提供使開發過程更輕鬆的服務。 CLS公共語言規範 要和其他對象完全交互,而不管這些對象是以何種語言實現的,對象必須只向調用方公開那些它們必須與之互用的所有語言的通用功能。爲此定義了公共語言規範 (CLS),它是許多應用程序所需的一套基本語言功能。 強類型 C# 是強類型語言;因此每個變量和對象都必須具有聲明類型。 13.值類型和引用類型的區別? 基於值類型的變量直接包含值。將一個值類型變量賦給另一個值類型變量時,將複製包含的值。這與引用類型變量的賦值不同,引用類型變量的賦值只複製對對象的引用,而不復制對象本身。 所有的值類型均隱式派生自 System.valueType。 與引用類型不同,從值類型不可能派生出新的類型。但與引用類型相同的是,結構也可以實現接口。 與引用類型不同,值類型不可能包含 null 值。然而,可空類型功能允許將 null 賦給值類型。 每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值。 值類型主要由兩類組成:結構、枚舉 結構分爲以下幾類:Numeric(數值)類型、整型、浮點型、decimal、bool、用戶定義的結構。 引用類型的變量又稱爲對象,可存儲對實際數據的引用。聲明引用類型的關鍵字:class、interface、delegate、內置引用類型: object、string 14.如何理解委託委託類似於 C++ 函數指針,但它是類型安全的。 委託允許將方法作爲參數進行傳遞。 委託可用於定義回調方法。 委託可以鏈接在一起;例如,可以對一個事件調用多個方法。 方法不需要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。 C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作爲參數傳遞,以代替單獨定義的方法。 15.C#中的接口和類有什麼異同。異: 不能直接實例化接口。 接口不包含方法的實現。 接口、類和結構可從多個接口繼承。但是C# 只支持單繼承:類只能從一個基類繼承實現。 類定義可在不同的源文件之間進行拆分。 同: 接口、類和結構可從多個接口繼承。 接口類似於抽象基類:繼承接口的任何非抽象類型都必須實現接口的所有成員。 接口可以包含事件、索引器、方法和屬性。 一個類可以實現多個接口。 16.ASP.net的身份驗證方式有哪些 Windows 身份驗證提供程序 提供有關如何將 Windows 身份驗證與 Microsoft Internet 信息服務 (IIS) 身份驗證結合使用來確保 ASP.NET 應用程序安全的信息。 Forms 身份驗證提供程序 提供有關如何使用您自己的代碼創建應用程序特定的登錄窗體並執行身份驗證的信息。使用 Forms 身份驗證的一種簡便方法是使用 ASP.NET 成員資格和 ASP.NET 登錄控件,它們一起提供了一種只需少量或無需代碼就可以收集、驗證和管理用戶憑據的方法。 Passport 身份驗證提供程序 提供有關由 Microsoft 提供的集中身份驗證服務的信息,該服務爲成員站點提供單一登錄和核心配置 17.活動目錄的作用 Active Directory存儲了有關網絡對象的信息,並且讓管理員和用戶能夠輕鬆地查找和使用這些信息。Active Directory使用了一種結構化的數據存儲方式,並以此作爲基礎對目錄信息進行合乎邏輯的分層組織。 18.解釋一下UDDI、WSDL的意義及其作用 UDDI 統一描述、發現和集成協議(UDDI, Universal Description, Discovery and Integration)是一套基於Web的、分佈式的、爲Web服務提供的信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web服務註冊以使得別的企業能夠發現的訪問協議的實現標準。UDDI 提供了一組基於標準的規範用於描述和發現服務,還提供了一組基於因特網的實現。 WSDL WSDL描述Web服務的公共接口。這是一個基於XML的關於如何與Web服務通訊和使用的服務描述; l 服務 URL 和命名空間 l 網絡服務的類型(可能還包括 SOAP 的函數調用,正像我所說過的,WSDL 足夠自如地去描述網絡服務的廣泛內容) l 有效函數列表 l 每個函數的參數 l 每個參數的類型 l 每個函數的返回值及其數據類型 19.什麼是SOAP SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。 SOAP 是一種輕量級協議,用於在分散型、分佈式環境中交換結構化信息。 SOAP 利用 XML 技術定義一種可擴展的消息處理框架,它提供了一種可通過多種底層協議進行交換的消息結構。 這種框架的設計思想是要獨立於任何一種特定的編程模型和其他特定實現的語義。 SOAP 定義了一種方法以便將 XML 消息從 A 點傳送到 B 點。 爲此,它提供了一種基於 XML 且具有以下特性的消息處理框架:1) 可擴展,2) 可通過多種底層網絡協議使用,3) 獨立於編程模型。 20.如何部署一個ASP.net頁面 VS 2005和VS 2003都有發佈機制。2003可以發佈然後再複製部署。 VS2005基本上可以直接部署到對應位置。 21.如何理解.net中的垃圾回收機制 .NET Framework 的垃圾回收器管理應用程序的內存分配和釋放。每次您使用 new 運算符創建對象時,運行庫都從託管堆爲該對象分配內存。只要託管堆中有地址空間可用,運行庫就會繼續爲新對象分配空間。但是,內存不是無限大的。最終,垃圾回收器必須執行回收以釋放一些內存。垃圾回收器優化引擎根據正在進行的分配情況確定執行回收的最佳時間。當垃圾回收器執行回收時,它檢查託管堆中不再被應用程序使用的對象並執行必要的操作來回收它們佔用的內存。

1:a=10,b=15,在不用第三方變量的前提下,把a,b的值互換
2:已知數組int[] max={6,5,2,9,7,4,0};用快速排序算法按降序對其進行排列,並返回數組
3:請簡述面向對象的多態的特性及意義!
4:session喜歡丟值且佔內存,Cookis不安全,請問用什麼辦法代替這兩種原始的方法
5:對數據的併發採用什麼辦法進行處理較好。
6:已知Oracle數據庫有GD和ZS兩個數據庫,GD數據庫v_s表有數據寫入時,從v_s表中提取最新數據到ZS數據庫的D_E表中。請問用什麼辦法解決這一問題?如果又碰到不能互訪的問題時,又用什麼辦法解決?
7:已知Oracle數據庫a,b
現在在a用戶權限下,訪問b數據庫sql語句爲select a.* From b a,請改正這一句Sql的寫法
8:當對數據庫進行海量級的數據插入時,數據庫出現報錯,錯誤原因可能有哪些,以你的經驗談談你的解決辦法
9:算法分析
AH 20060625 12 44 01 CAD001
AH 20060625 12 44 01 CAD001
AH 20060625 13 44 02 CAD001
AH 20060625 14 44 03 CAD001
說明:第二列表示日期,第三列表示溫度,第四列表示水位,第五列表示流量,第6列表示水位測站編碼,每一列表示一個字段
很明顯第一條數據和第二條數據重複,然數據表中有主鍵和外鍵的約束,是不允許有重複的數據存在的,請構造算法將重複的數據Del掉
10:javascript算法
已知a,b,現在點鼠標a會向b遊動,鼠標停,a會停下來
請實現"跑步算法" 
1、答案
a=a+b;
b=a-b;
b=(a+b)/2;
a=a-b;
還有變態要求,需要代碼最短呢。有兩個結果:
1) a^=b^(b^=a^b); // 13個字節
2) a=b+(b=a)*0; // 11個字節
2、答案(如果不限定算法,其實可以直接用Array.Sort()方法的)
public class TestQuickSort {
    private int[] array = null;
    private void quickSort(int lowest, int highest) {
        if (array == null || lowest < 0 || lowest >= highest
                || highest >= array.length) {
            return;
        }
        int low = lowest;
        int high = highest;
        int key = low++;
        for (; low <= high;) {
            if (key < high) {
                if (array[key] > array[high]) {
                    array[high] = array[key] + (array[key] = array[high]) * 0;
                    key = high;
                }
                high--;
            }
            if (key > low) {
                if (array[key] < array[low]) {
                    array[low] = array[key] + (array[key] = array[low]) * 0;
                    key = low;
                }
                low++;
            }
        }
        quickSort(lowest, key - 1);
        quickSort(key + 1, highest);
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
        TestQuickSort test = new TestQuickSort();
        int[] array = {6,5,2,9,7,4,0};
        test.array = array;
        test.quickSort(0, array.length - 1);
        int length = test.array.length;
        for (int i = 0; i < length; i++) {
            System.out.println(test.array[i]);
        }
    }
}
不要用冒泡排序法很慢,選擇排序好些,但題意是快速排序算法
快速排序算法的基本思想:
快速排序的基本思想是基於分治策略的。對於輸入的子序列ap..ar,如果規模足夠小則直接進行排序,否則分三步處理:
分解(Divide):將輸入的序列ap..ar劃分成兩個非空子序列ap..aq和aq+1..ar,使ap..aq中任一元素的值不大於aq+1..ar中任一元素的值。
遞歸求解(Conquer):通過遞歸調用快速排序算法分別對ap..aq和aq+1..ar進行排序。
合併(Merge):由於對分解出的兩個子序列的排序是就地進行的,所以在ap..aq和aq+1..ar都排好序後不需要執行任何計算ap..ar就已排好序。
這個解決流程是符合分治法的基本步驟的。因此,快速排序法是分治法的經典應用實例之一。
算法Quick_Sort的實現:
Pascal實現:
Procedure Quick_Sort(p,r:TPosition;var L:TList); {快速排序}
var
q:TPosition;
begin
if L[p..r]足夠小 then Sort(p,r,L) {若L[p..r]足夠小則直接對L[p..r]排序}
else
begin
q:=Partition(p,r,L); {將L[p..r]分解爲L[p..q]和L[q+1..r]兩部分}
Quick_Sort(p,q,L); {遞歸排序L[p..q]}
Quick_Sort(q+1,r,L); {遞歸排序L[q+1..r]}
end;
end;
3、答案
面向對象的編程使用了派生繼承 以及虛函數機制.
一個本來指向基類的對象指針可以指向其派生類的.並訪問從基類繼承而來的成員變量和函數.
而虛函數是專門爲這個特性設計的,這個函數在每個基類的派生類中都是同一個名字,但函數體卻並不一定相同,派生類往往爲實現自己的功能而修改這個虛函數.這樣用一個指針就能夠實現對多種不同的派生類的訪問, 並實現其派生類的特定功能(代碼 )....
4、答案
用VIEWSTATE
stateserver
5、答案
可以控制連接池的連接數量條件好的話 可以用負載平衡
6、答案
一箇中型或大型公司往往由地理上分散的部門所組成,這些部門通常需要進行數據共享。針對這些共享數據,可以將其存儲在某個站點上,需要的用戶都從這個站點上存取。這種方案的優點是數據的一致性容易保證,但其缺點也是很突出的,那就是該站點的負載大、網絡負載大,遠程用戶的數據響應遲緩。數據複製技術可以有效地解決這個問題,它通過將這些共享數據複製到位於不同地點的多個數據庫中,從而實現數據的本地訪問,減少了網絡負荷,並提高了數據訪問的性能,而且通過對數據庫中的數據定期同步(通常是每天晚上),從而確保了所有的用戶使用同樣的、最新的數據。該技術適用於用戶數量較大、地理分佈較廣、而且需要實時地訪問相同數據的應用模式。
 
 
數據複製的概念及特點
 
 
1、數據複製的概念及分類
 
 
數據複製,就是將數據庫中的數據拷貝到另外一個或多個不同的物理站點上,從而保持源數據庫與目標數據庫中指定數據的一致性。
 
 
按照數據複製的實時性,數據複製可分爲同步數據複製和異步數據複製。同步數據複製是指將本地生產數據以完全同步的方式複製到異地,每一本地IO交易均需等待遠程複製的完成方予以釋放。異步數據複製則是指將本地生產數據以後臺同步的方式複製到異地,每一本地IO交易均正常釋放,無需等待遠程複製的完成。同步複製實時性強,遠端數據與本地數據完全同步。但這種方式受帶寬影響較大,數據傳輸距離較短。異步複製不影響本地交易,傳輸距離長,但其數據比本地數據略有延遲。在異步複製環境中,對於所有應用最關鍵的就是要確保數據的一致性。
 
 
按照複製站點的類型,數據複製可分爲多主控站點複製、物化視圖複製及混合複製。多主控站點複製也稱爲對等站點複製,其中每個站點都是主控站點,都需要與其他站點進行信息交流,各站點之間是平等的。物化視圖複製包含一個主控站點、一個或多個物化視圖站點,
物化視圖中的內容可以爲目標主對象在某個時間點的全部拷貝或部分拷貝,其中目標主對象既可以是主控站點上的表也可以是物化視圖站點上的主物化視圖。混合複製包含多個主控站點和多個物化視圖站點,是主控站點複製和物化視圖複製的結合體,適合於複雜的業務情況。
 
 
2、數據複製的特點
 
 
數據複製通過在多個站點上建立備份,能夠提高數據的安全性,同時也提高了數據的可用性,這是因爲如果一個站點出現了問題,用戶可以選擇其他站點繼續進行操作,應用系統還可繼續運行,從而數據複製提供了容錯保護機制。
 
 
然而數據複製最基本的功能是提高數據庫的性能。它通過將遠程數據庫中的數據複製到本地,使得應用能夠就近訪問數據,從而降低網絡傳輸負載,提高效率。而且在數據複製系統中,可以提供多個站點之間的負載平衡,讓這幾個用戶使用這個服務器,另外幾個用戶可以
使用其他的服務器,以避免某些站點負載過重。
 
 
物化視圖還提供了按子集進行復制,這樣各站點就可只複製自己需要的數據,也能減輕網絡的傳輸量。
 
 
數據複製的實現方法
 
 
在具體的實現之前,首先要做好設計與規劃。這就需要細緻分析具體的業務情況,設計出一套能夠滿足業務需要的方案。通常在設計過程中,需要確定出要建立的數據庫站點,各站點的類型,需要複製的數據對象,以及同步方式、衝突解決方案等內容。
 
 
在設計完成之後,就可具體來實現數據複製,實現主要包括以下幾步:
 
 
(1)創建複製站點
 
 
(2)創建組對象
 
 
(3)配置衝突解決方案
 
 
下面我們舉一個例子來說明各步具體需要完成的工作。在這個例子中我們採用多主控站點複製方式,設有兩個主控站點和兩個共享數據表。兩個主控站點分別爲:處理站點(cl.world)和解釋站點(js.wo rld);兩個數據表爲測區( survey)和測線( line)。
 
 
STEP1 創建複製站點
 
 
(1)首先以SYSTEM身份登陸主站點數據庫cl.worldCONNECT system/[email protected]
 
 
(2)創建用戶—複製管理員,併爲該用戶授權複製管理員負責複製站點的創建和管理,每個複製站點都必須創建複製管理員:
 
 
CREATE USER repadmin IDENTIFIED BY repadmin;
BEGIN
 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username => ’repadmin’);
END;
 
 
 
(3)爲本站點指定傳播者
 
 
傳播者負責將本地最新更新的數據傳播到其他站點上:
 
 
BEGIN
 DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => ’repadmin’);
END;
 
 
 
(4)爲本站點指定接收者
 
 
接收者負責接收其他站點上的傳播者傳送過來的數據:
 
 
BEGIN
DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP (
 username => ’repadmin’,
 privilege_type => ’receiver’,
 list_of_gnames => NULL);
END;
 
 
 
(5)確定清除時間
 
 
爲了使傳送過來事務隊列不致過大,需要將成功加載的事務從事物隊列裏清除掉,這裏設定每小時清除一次。
 
 
CONNECT repadmin/[email protected]
BEGIN
 DBMS_DEFER_SYS.SCHEDULE_PURGE (
next_date => SYSDATE,
interval => ’SYSDATE + 1/24’,
delay_seconds => 0);
END;
 
 
 
在建立好站點cl.world後,以同樣的方法創建站點js. world。
(6)創建各主控站點之間的調度鏈接
 
 
創建各主控站點之間的調度鏈接需要先在各主控站點間建立數據庫鏈接,之後爲每個數據庫鏈接定義調度時間。
 
 
首先,在處理站點上建立與解釋站點的數據庫鏈接,這裏需要先建立一個公用數據庫鏈接,供其他私有數據庫鏈接來使用。
 
 
CONNECT SYSTEM/[email protected]
CREATE PUBLIC DATABASE LINK js.world USING ’js.world’;
CONNECT repadmin/[email protected]
CREATE DATABASE LINK js.world CONNECT TO repadmin
IDENTIFIED BY repadmin;
 
 
 
同樣,在解釋站點上建立與處理站點的數據庫鏈接
 
 
CONNECT SYSTEM/[email protected]
CREATE PUBLIC DATABASE LINK cl.world USING ’cl.world’;
CONNECT repadmin/[email protected]
CREATE DATABASE LINK cl.world CONNECT TO repadmin
IDENTIFIED BY repadmin;
 
 
 
調度鏈接確定本站點上的事務向其他站點發送的頻度,下面的代碼爲10分鐘一次:
 
 
CONNECT repadmin/[email protected]
BEGIN
DBMS_DEFER_SYS.SCHEDULE_PUSH (
destination => ’js.world’,
interval => ’SYSDATE + (1/144)’,
next_date => SYSDATE,
parallelism => 1,
execution_seconds => 1500,
delay_seconds => 1200);
END;
 
 
 
在解釋站點上做相同的工作STEP2 創建主控組在複製環境中,Oracle用組來管理複製對象。通過將相關的複製對象放在一個組裏,從而方便對大量數據對象的管理。
 
 
這裏我們假設用戶模式integr ation 在處理站點和解釋站點都已存在,而且表測區(survey )和測線(line)也已經創建。
 
 
(1)創建主控組對象
 
 
CONNECT repadmin/[email protected]
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPGROUP (
gname => ’inte_repg’);
END;
 
 
 
(2)向主控組中添加數據對象,將測區表survey加入到組inte_repg中
 
 
BEGIN
DBMS_REPCAT.CREATE_MASTER_REPOBJECT (
gname => ’inte_repg’,
type => ’TABLE’,
oname => ’survey’,
sname => ’integration’,
use_existing_object => TRUE,
copy_rows => FALSE);
END;
 
 
 
以同樣的方法將測線表line 加入到組inte_repg中
 
 
(3)在主控組中添加其他參與複製的站點,數據庫之間的同步方式在此指定
 
 
BEGIN
DBMS_REPCAT.ADD_MASTER_DATABASE (
gname => ’inte_repg’,
master => ’js.world’,
use_existing_objects => TRUE,
copy_rows => FALSE,
propagation_mode => ’ASYNCHRONOUS’);
END;
 
 
 
(4)如果可能出現衝突,則需要配置衝突解決方案。衝突解決方案將在後面介紹。
 
 
(5)爲每個對象生成複製支持
 
 
BEGIN
DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT (
sname => ’integration’,
oname => ’survey’,
type => ’TABLE’,
min_communication => TRUE);
END;
 
 
 
測線表line也一樣
 
 
(6)重新開始複製
 
 
BEGIN
DBMS_REPCAT.RESUME_MASTER_ACTIVITY (
gname => ’inte_repg’);
END;
 
 
 
以同樣的方式設置解釋站點。設置成功後,數據複製過程就宣告完畢,庫中的數據就可進行復制。
 
 
數據複製中衝突的解決方案
 
 
在複製環境中,儘管在數據庫和應用程序設計過程中,會盡量避免各站點間衝突的發生,但完全避免衝突的可能性還是比較小的,那麼一旦衝突發生,就需要一個按照具體業務規則的衝突解決機制,來使得各站點的數據保持一致。
 
 
首先需要分析哪些對象容易出現衝突。通常來說,靜態的數據變化少,衝突出現的可能性也小;而有些數據變化非常大,衝突出現的可能性也大。確定了衝突易發的對象後,需要確定怎樣解決衝突,比如在各站點之間建立優先次序,在數據不一致時,以某個站點上的爲
準;或以某個站點上最新的修改爲準。
 
 
Oracle提供了多中衝突解決方案,具體包括:針對更新衝突的方案、針對唯一性衝突的方案、針對刪除衝突的方案。除了這些方案以外,用戶還可以自定義衝突解決方法。每種方案都有自己的適用情況,那麼我們需要根據具體的業務來選擇合適的衝突解決方案。
 
 
結束語
 
 
本文詳細介紹了分佈式系統Oracle中的數據複製技術,在具體應用中,還有許多比較複雜的問題需要解決,比如主控組中如果包含循環依賴的表或自相關的表時如何處理;如何利用模版機制來創建物化視圖站點;如何對數據複製環境進行管理與維護。這些問題需要在實際
應用中逐步探索,深入研究。
7、答案
select a.* from b.b a
8、答案
對於oracle數據庫來說,可能出現的問題包括:
1. 回滾區間空間不足  --- 解決方法,增加表空間
2. 數據表空間不足 ---- 增加數據表空間
3. 表空間不足 ---- 增加表空間(oracle數據表有空間限制)
4. 臨時表空間不足 --- 因爲計算索引使用臨時表空間,增加表空間或者暫時不使用索引,數據導入完畢再重新建立索引
5.另外一些原因,主要是垃圾數據造成的,比如外鍵匹配,主鍵衝突,單一索引衝突等。
9、答案
DELETE FROM TABLE_NAME
WHERE ROWID!=(SELECT MAX(ROWID) FROM TABLE_NAME D
WHERE TABLE_NAME.COL1=D.COL1 AND TABLE_NAME.COL2=D.COL2);
10、答案
   歡迎自測一下,在沒有特別的準備下,你能答出多少來?  
   
  1.面向對象的思想主要包括什麼?  
   
  2.什麼是ASP.net中的用戶控件  
   
  3.什麼叫應用程序域?什麼是受管制的代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?  
   
  4.列舉一下你所瞭解的XML技術及其應用  
   
  5.值類型和引用類型的區別?寫出C#的樣例代碼。  
   
  6.ADO.net中常用的對象有哪些?分別描述一下。  
   
  7.如何理解委託?  
   
  8.C#中的接口和類有什麼異同。  
   
  9.。net中讀寫數據庫需要用到哪些類?他們的作用  
   
  10.UDP連接和TCP連接的異同。  
   
  11.ASP.net的身份驗證方式有哪些?分別是什麼原理?  
   
  12.進程和線程分別怎麼理解?  
   
  13.什麼是code-Behind技術。  
   
  14.活動目錄的作用。  
   
  15..net中讀寫XML的類都歸屬於哪些命名空間?  
   
  16.解釋一下UDDI、WSDL的意義及其作用。  
   
  17.什麼是SOAP,有哪些應用。  
   
  18.如何部署一個ASP.net頁面。  
   
  19.如何理解.net中的垃圾回收機制。  
   
  20.常用的調用webservice方法有哪些?
1 繼承 多態 封裝 (一直看一直都忘掉)
2 用戶控件. 不會說懂得做
3 裝箱和拆箱發生 值類型向引用類型轉換,和引用類型向值類型轉 重載:同一個函數參數不同
4.xml可以用來做網頁(xslt) xml可以當作數據庫 xml可以用來保存對象的系列化(web服務好象是基於這個的)

5值類型,沒有什麼好說的.引用類型用處是返回兩個以上參數的時候比較好用 ref out 我常用的是out不要先賦值
6 ado.net 我直接用 sqlhelper了 有connection command 還有參數
7 回調機制比較有用的.在net中採用了委託.
8 接口,是可以多繼承,類只有單繼承.接口強調了你必須實現,而沒有具本實現的方法和虛類有點相似
9 datareader dataset 還有一個不太常用
10 udp不要實現什麼三次握手.
11 asp.net身份驗證最常用還是以前的session方法. form驗證沒有用過. 微軟的哪個也沒有用過
12 進程簡單理解爲單個程序吧(按ctrl alt del)可以看到的.它至少有一個主線程 .
13 代碼後置..不懂得講
14 活動目錄.. 完全不會
15 system.xml (system.io創建目錄的時候用)
16 這個也是web服務裏的東西.
17 soap簡單協議.我只知道.web服務是基於它之上的
18 部置一個頁面. 也就是說沒有代碼是直接寫在aspx中的了.只接放在IIS的虛擬目錄下就行了.當然要asp.net支持
19 垃圾回收..一般的只要掌握.非託管對象要記得釋放資源就行了吧.
20 直接在vs.net裏面引用就OK了.它會自己生成一個代理類

net程序員面試題 看你能否通過技術關?
 


面試題

1.以下程序打印結果是什麼:
public class A
 {
  private void printA()
  {
   console.writeline(printA");
  }
  private virtual valueA()
 {
  console.writeline(valueA");
 }
public classs B:A
{
 new private void printA()
 {
  console.writeline(printB");
 }
 private override valueA()
 {
 console.writeline(valueB");
 }
}
pub static int main(String[] args)
{
 B BTemp=new B();
 A ATemp=BTemp;
   ATemp.printA();
   ATemp.valueA();
   BTemp.printA();
   BTemp.valueA();
}
2.用C#寫一段代碼,使用遞歸算法從一個數組中找出最大值和最小值.
3.public class BassTest
{
 public BassTest()
 {
 
 }
}
public class BassTemp:BassTest
{
 private BassTemp()
 {
 
 }
}
請問以上程序錯誤嗎?爲什麼?
3.寫出以下程序運行的結果或者指出程序中的錯誤:
using system
name mysapce
{
 public class T1
  {
  public static int mypublicint;
  internal static int myinternalint;
  private static int myprivate=0;
  public class M1
   {
   public static int mypublicint;
   internal static int myinternalint;
   private static int myprivate=0;
   }
  private class M2
   {
   public static int mypublicint;
   internal static int myinternalint;
   private static int myprivate=0;
   }
  public class MainClass
  {
  public static int Main()
   {
    T1.mypublicint=1;
    T1.myinternalint=2;
    T1.myprivate=2;
    T1.M1.mypublicint=1;
    T1.M1.myinternalint=2;
    T1.M1.myprivate=2;
    T1.M2.
    T1.M2.
    T1.M2.
 Return 0;
   }
  }
  }
}
4.以下程序有什麼錯?
public class TestClass
{
 private int intcount;
 private static int Y;
 public static setvalue
  {
  intcount=1;
  Y=1;
  } 
}
5.package,package bodies怎麼理解,創建的語法怎樣?
6.寫一個存儲過程,用遊標來作,聲明是在begin後還是在前?用完後是否要關閉?
7.什麼叫值類型,什麼叫引用類型?
8.ADO,ADO.NET有什麼區別?
9.類和結構有什麼不同?
10.Delegate是什麼,舉例說明!
11.什麼是反射,舉例說明?
12.overide  和重載有什麼不同?
13..net中什麼類不能被繼承?
14.接口和抽象類有什麼不同?
15.IS 和AS 有什麼區別?
16..net中傳遞參數有那些方法?有什麼區別?
17.特性和屬性有什麼區別?
.net面試題大全(有答案)
      瀏覽:133
標籤:IIS   發佈時間:2007-01-28   評論   文字大小:
 
1 (1)面向對象的語言具有__繼承性_性、_封裝性_性、_多態性 性。
(2)能用foreach遍歷訪問的對象需要實現 _ IEnumerable 接口或聲明_ GetEnumerator 方法的類型。1.c#中的三元運算符是__?:__
2.當整數a賦值給一個object對象時,整數a將會被__裝箱___?
3.類成員有__3__種可訪問形式?
4.public static const int A=1;這段代碼有錯誤麼?是什麼? const成員都是static所以應該去掉static
5.float f=-123.567F;
int i=(int)f;
i的值現在是_-123____?
6.利用operator聲明且僅聲明瞭==,有什麼錯誤麼? 要同時修改Equale和GetHash() ? 重載了"==" 就必須重載 "!="
7.委託聲明的關鍵字是___ delegate ___?
8.用sealed修飾的類有什麼特點?不可被繼承
9.在Asp.net中所有的自定義用戶控件都必須繼承自_ System.Web.UI.UserControl _______?
10.在.Net中所有可序列化的類都被標記爲__[serializable]___?
11.在.Net託管代碼中我們不用擔心內存漏洞,這是因爲有了_ gC __?
12.下面的代碼中有什麼錯誤嗎?_ abstract override 是不可以一起修飾______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F();
}
13.當類T只聲明瞭私有實例構造函數時,則在T的程序文本外部,_不可以_(可以 or 不可以)從T派生出新的類,_不可以_(可以 or 不可以)直接創建T的任何實例。
14.下面這段代碼有錯誤麼?case():不行 default;
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault;
CaseTwo();
break;
}
15.在.Net中,類System.Web.UI.Page 可以被繼承麼?可以
2. 不定項選擇:
(1) 以下敘述正確的是: B C
A. 接口中可以有虛方法。B. 一個類可以實現多個接口。 C. 接口不能被實例化。 D. 接口中可以包含已實現的方法。
   (2) 從數據庫讀取記錄,你可能用到的方法有:B C D
      A. ExecuteNonQuery            B. ExecuteScalar      C. Fill                        D. ExecuteReader
2.對於一個實現了IDisposable接口的類,以下哪些項可以執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選)   (        ABC         )  
  A.Close B.Dispose C.Finalize  
  D.using E.Quit  
  3.以下關於ref和out的描述哪些項是正確的?(多選)   (    ACD   )  
  A.使用ref參數,傳遞到ref參數的參數必須最先初始化。  
  B.使用out參數,傳遞到out參數的參數必須最先初始化。  
  C.使用ref參數,必須將參數作爲ref參數顯式傳遞到方法。  
  D.使用out參數,必須將參數作爲out參數顯式傳遞到方法。 
1.在對SQL Server 數據庫操作時應選用(A)。
a)SQL Server .NET Framework 數據提供程序;
b)OLE DB .NET Framework 數據提供程序;
c)ODBC .NET Framework 數據提供程序;
d)Oracle .NET Framework數據提供程序;
2.下列選項中,(C)是引用類型。
a)enum類型   b)struct類型 c)string類型   d)int類型
3.關於ASP.NET中的代碼隱藏文件的描述正確的是(C)
a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的創建用於與窗體交互。編程邏輯唯一與用戶界面不同的文件中。該文件稱作爲“代碼隱藏”文件,如果用C#創建,該文件將具有“.ascx.cs”擴展名。
b)項目中所有Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。
c)項目中所有的Web窗體頁的代碼隱藏文件都被編譯成項目動態鏈接庫(.dll)文件。
d)以上都不正確。
4.以下描述錯誤的是(A)
a)在C++中支持抽象類而在C#中不支持抽象類。
b)C++中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件並且在同一處聲明和定義類的成員。
c)在C#中可使用 new 修飾符顯式隱藏從基類繼承的成員。
d)在C#中要在派生類中重新定義基類的虛函數必須在前面加Override。
5.C#的數據類型有(A)
a)值類型和調用類型; b)值類型和引用類型;c)引用類型和關係類型;d)關係類型和調用類型;
6.下列描述錯誤的是(D)
a)類不可以多重繼承而接口可以;
b)抽象類自身可以定義成員而接口不可以;
c)抽象類和接口都不能被實例化;
d)一個類可以有多個基類和多個基接口;
7.在DOM中,裝載一個XML文檔的方法(D)
a)save方法   b)load方法 c)loadXML方法 d)send方法
8.下列關於構造函數的描述正確的是(C)
a)構造函數可以聲明返回類型。
b)構造函數不可以用private修飾
c)構造函數必須與類名相同
d)構造函數不能帶參數
9.以下是一些C#中的枚舉型的定義,其中錯誤的用法有()
a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1 , Nike, Jike }
d)public enum var1{ Mike , Nike , Jike }
10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是(D)。
a)9                   b)2             c)6              d)越界
11.接口是一種引用類型,在接口中可以聲明(A),但不可以聲明公有的域或私有的成員變量。
a)方法、屬性、索引器和事件; b)方法、屬性信息、屬性; c)索引器和字段;    d)事件和字段;
12.ASP.NET框架中,服務器控件是爲配合Web表單工作而專門設計的。服務器控件有兩種類型,它們是(A )
a)HTML控件和Web控件 b)HTML控件和XML控件 c)XML控件和Web控件    d)HTML控件和IIS控件
13.ASP.NET中,在Web窗體頁上註冊一個用戶控件,指定該控件的名稱爲”Mike”,正確的註冊指令爲( D)
a)<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>
b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>
c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>
d)以上皆非
14.在ADO.NET中,對於Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯誤的是(C)。
a)insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執行;
b)ExecuteNonQuery()方法返回執行Sql語句所影響的行數。
c)Select操作的Sql語句只能由ExecuteReader()方法來執行;
d)ExecuteReader()方法返回一個DataReder對象;
15.下列ASP.NET語句(b)正確地創建了一個與SQL Server 2000數據庫的連接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
16.Winform中,關於ToolBar控件的屬性和事件的描述不正確的是(D)。
a)Buttons屬性表示ToolBar控件的所有工具欄按鈕
b)ButtonSize屬性表示ToolBar控件上的工具欄按鈕的大小,如高度和寬度
c)DropDownArrows屬性表明工具欄按鈕(該按鈕有一列值需要以下拉方式顯示)旁邊是否顯示下箭頭鍵
d)ButtonClick事件在用戶單擊工具欄任何地方時都會觸發
17.在ADO.NET中執行一個存儲過程時,如果要設置輸出參數則必須同時設置參數的方向和(B ),必要時還要設置參數尺寸。
a)大小;             b)上限;              c)初始值;            d)類型;
18.如果將窗體的FormBoderStyle設置爲None,則( B)。
a)窗體沒有邊框並不能調整大小;        b)窗體沒有邊框但能調整大小;
c)窗體有邊框但不能調整大小;          d)窗體是透明的;
19.如果要將窗體設置爲透明的,則( B)
a)要將FormBoderStyle屬性設置爲None;      b)要將Opacity屬性設置爲小於100%得值;
c)要將locked 屬性設置爲True;              d)要將 Enabled屬性設置爲True;
20.下列關於C#中索引器理解正確的是(B/C )
a)索引器的參數必須是兩個或兩個以上   b)索引器的參數類型必須是整數型
c)索引器沒有名字                     d)以上皆非
21.下面描述錯誤的是( C/D)。
a)窗體也是控件; b)窗體也是類; c)控件是從窗體繼承來的; d)窗體的父類是控件類;
22.要對註冊表進行操作則必須包含( D)。
a)System.ComponentModel命名空間; b)System.Collections命名空間;
c)System.Threading命名空間;      d)Microsoft.Win32命名空間;
23.要創建多文檔應用程序,需要將窗體的(D )屬性設爲true。
a)DrawGrid;         b)ShowInTaskbar;          c)Enabled;            d)IsMdiContainer;
24.如果設treeView1=new TreeView(),則treeView1.Nodes.Add("根節點")返回的是一個 ()類型的值。
a)TreeNode
b)int
c)string
d)TreeView
25.下面關於XML的描述錯誤的是(D)。
a)XML提供一種描述結構化數據的方法;
b)XML 是一種簡單、與平臺無關並被廣泛採用的標準;
c)XML文檔可承載各種信息;
d)XML只是爲了生成結構化文檔;
1.裝箱、拆箱操作發生在: (  C  )
A.類與對象之間   B.對象與對象之間
C.引用類型與值類型之間   D.引用類型與引用類型之間
2.用戶類若想支持Foreach語句需要實現的接口是: (  A  )
A.IEnumerableB.IEnumerator
C.ICollectionD.ICollectData
3..Net Framework通過什麼與COM組件進行交互操作?(   C )
A.Side By SideB.Web Service
C.InteropD.PInvoke
4..Net依靠以下哪一項技術解決COM存在的Dll Hell問題的?( A   )
A.Side By SideB.Interop
C.PInvokeD.COM+
5.裝箱與拆箱操作是否是互逆的操作?(  B  )
A.是B.否
6.以下哪個是可以變長的數組?(  D  )
A.Array                      B.string[]
C.string[N]                  D.ArrayList
7.用戶自定義異常類需要從以下哪個類繼承:(  A  )
A.Exception                             B.CustomException
C.ApplicationException                  D.BaseException
8.以下代碼段中能否編譯通過?請給出理由。
try
{
}
catch(FileNotFoundException e1)
{
}
catch(Exception e2)
{
}
catch(IOException e3)
{
}
catch
{
9.對於一個實現了IDisposable接口的類,以下哪些項可以執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選) (   ABC     )
A.Close                 B.DisposeC.Finalize
D.using                 E.Quit
10.Net依賴以下哪項技術實現跨語言互用性?(  C  )
A.CLR               B.CTS               C.CLS                  D.CTT
11.請問: String類與StringBuilder類有什麼區別?爲什麼在.Net類庫中要同時存在這2個類?(簡答)
 如果要操作一個不斷增長的字符串,儘量不用String類,改用StringBuilder類。兩個類的工作原理不同:String類是一種傳統的修改字符串的方式,它確實可以完成把一個字符串添加到另一個字符串上的工作沒錯,但是在.NET框架下,這個操作實在是划不來。因爲系統先是把兩個字符串寫入內存,接着刪除原來的String對象,然後創建一個String對象,並讀取內存中的數據賦給該對象。這一來二去的,耗了不少時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。當然,一般情況下覺察不到這二者效率的差異,但如果你要對某個字符串進行大量的添加操作,那麼StringBuilder類所耗費的時間和String類簡直不是一個數量級的。 
12.以下哪個類是int的基類?(    )
A.Int32              B.Object          C.ValueType            D.Int16 
二、C# 部分*
13.以下哪些可以作爲接口成員?(多選) ( ABDE )
A.方法B.屬性C.字段D.事件E.索引器
F.構造函數G.析構函數
14.以下關於ref和out的描述哪些項是正確的?(多選) (   ACD     )
A.使用ref參數,傳遞到ref參數的參數必須最先初始化。
B.使用out參數,傳遞到out參數的參數必須最先初始化。
C.使用ref參數,必須將參數作爲ref參數顯式傳遞到方法。
D.使用out參數,必須將參數作爲out參數顯式傳遞到方法。
15.“訪問範圍限定於此程序或那些由它所屬的類派生的類型”是對以下哪個成員可訪問性含義的正確描述?(  B   )
A.public        B.protected            C.internal         D.protected internal
16.class Class1
{
    private static int count = 0;
    static Class1()
    {
        count++;
    }
    public Class1()
    {
        count++;
    }
}
Class1 o1 = new Class1();
Class1 o2 = new Class1();
請問,o1.Count的值是多少?(  C  )
A.1         B.2             C.3             D.4
17.abstract class BaseClass
{
    public virtual void MethodA()
    {
    }
    public virtual void MethodB()
    {
    }
}
class Class1: BaseClass
{
    public void MethodA(string arg)
    {
    }
    public override void MethodB()
    {
    }
}
class Class2: Class1
{
    new public void MethodB()
    {
    }
}
class MainClass
{
    public static void Main(string[] args)
    {
        Class2 o = new Class2();
        Console.WriteLine(o.MethodA());
    }
}
請問,o.MethodA調用的是: (  A  )
A.BaseClass.MethodAB.Class2.MethodA
C.Class1.MethodAD.都不是
18.請敘述屬性與索引器的區別。 
屬性 索引器    
  通過名稱標識。 通過簽名標識。    
  通過簡單名稱或成員訪問來訪問。 通過元素訪問來訪問。    
  可以爲靜態成員或實例成員。 必須爲實例成員。    
  屬性的   get   訪問器沒有參數。 索引器的   get   訪問器具有與索引器相同的形參表。    
  屬性的   set   訪問器包含隱式   value   參數。 除了   value   參數外,索引器的   set   訪問器還具有與索引器相同的形參表。
 
19.請敘述const與readonly的區別。
每一個class至多只可以定義一個static構造函數,並且不允許增加訪問級別關鍵字,參數列必須爲空。
        爲了不違背編碼規則,通常把static數據成員聲明爲private,然後通過statci property提供讀寫訪問。
        const 關鍵字用於修改字段或局部變量的聲明。它指定字段或局部變量的值不能被修改。常數聲明引入給定類型的一個或多個常數。
        const數據成員的聲明式必須包含初值,且初值必須是一個常量表達式。因爲它是在編譯時就需要完全評估。
        const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環依賴。
        readonly在運行期評估賦值,使我們得以在確保“只讀訪問”的前提下,把object的初始化動作推遲到運行期進行。
        readonly 關鍵字與 const 關鍵字不同: const 字段只能在該字段的聲明中初始化。readonly 字段可以在聲明或構造函數中初始化。因此,根據所使用的構造函數,readonly 字段可能具有不同的值。另外,const 字段是編譯時常數,而 readonly 字段可用於運行時常數。
  readonly 只能在聲明時或者構造函數裏面初始化,並且不能在 static 修飾的構造函數裏面。
21.您需要創建一個ASP.NET應用程序,公司考慮使用Windows身份認證。
  所有的用戶都存在於AllWin這個域中。您想要使用下列認證規則來配置這個應用程序:
    a、 匿名用戶不允許訪問這個應用程序。
    b、 所有僱員除了Tess和King都允許訪問這個應用程序。
  請問您應該使用以下哪一個代碼段來配置這個應用程序?(  A  )
A. <authorization>
   <deny users=”allwin/tess, allwin/king”>
   <allow users=”*”>
   <deny users=”?”>
 </authorization>
B. <authorization>
   <allow users=”*”>
   <deny users=”allwin/tess, allwin/king”>
   <deny users=”?”>
 </authorization>
C. <authorization>
   <deny users=”allwin/tess, allwin/king”>
   <deny users=”?”>
   <allow users=”*”>
 </authorization>
D. <authorization>
   <allow users=”allwin/tess, allwin/king”>
   <allow users=”*”>
 </authorization>
E.<authorization>
   <allow users=”*”>
   <deny users=”allwin/tess, allwin/king”>
 </authorization>
22.您要創建一個顯示公司員工列表的應用程序。您使用一個DataGrid控件顯示員工的列表。您打算修改這個控件以便在這個Grid的Footer顯示員工合計數。請問您應該怎麼做?(  C?  )
  A.重寫OnPreRender事件,當Grid的Footer行被創建時顯示合計數。
  B.重寫OnItemCreated事件,當Grid的Footer行被創建時顯示合計數。
  C.重寫OnItemDataBound事件,當Grid的Footer行被創建時顯示合計數。
  D. 重寫OnLayout事件,當Grid的Footer行被創建時顯示合計數。
23.您要創建ASP.NET應用程序用於運行AllWin公司內部的Web站點,這個應用程序包含了50個頁面。您想要配置這個應用程序以便當發生一個HTTP代碼錯誤時它可以顯示一個自定義的錯誤頁面給用戶。您想要花最小的代價完成這些目標,您應該怎麼做?(多選)(  CD   )
  A.在這個應用程序的Global.asax文件中創建一個Application_Error過程去處理ASP.NET代碼錯誤。
  B.在這個應用程序的Web.config文件中創建一個applicationError節去處理ASP.NET代碼錯誤。
  C.在這個應用程序的Global.asax文件中創建一個CustomErrors事件去處理HTTP錯誤。
  D.在這個應用程序的Web.config文件中創建一個CustomErrors節去處理HTTP錯誤。
  E.在這個應用程序的每一頁中添加一個Page指示符去處理ASP.NET 代碼錯誤。
  F. 在這個應用程序的每一頁中添加一個Page指示符去處理ASP.NET HTTP錯誤。
24.您的公司有一個DB Server,名爲AllWin,其上裝了MS SQLSERVER 2000。現在需要您寫一個數據庫連接字符串,用以連接AllWin上SQL SERVER中的一個名爲PubBase實例的Test庫。請問,應該選擇下面哪一個字符串?(  B  )
  A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI”
  B. “Server= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI”
  C. “Data Source= AllWin /PubBase;Initial Category=PubBase;Integrated Security= SSPI”
  D. “Data Source= AllWin / PubBase;Database=Test;Integrated Security= SSPI”
25.您爲AllWin公司創建了一個ASP.NET應用程序。這個應用程序調用一個 Xml Web Service。這個 Xml Web Service 將返回一個包含了公司僱員列表的DataSet對象。請問您該如何在這個程序中使用這個 Xml Web Service?(  ?  )
  A.在“引用”對話框的.Net標籤中選擇 System.Web.Services.dll。
  B.在“Web引用”對話框中輸入這個 XML Web service 的地址。
  C.在您的 Global.asax.cs 中添加一條 using 語句並指定這個 XML Web service 的地址。
  D.在您的 Global.asax.cs 中寫一個事件處理器導入這個 Xml Web Service 相應的 .wsdl 和 .disco 文件。
26.您要創建一個ASP.NET應用程序在DataGrid控件中顯示一個經過排序的列表。產品數據被存放於一個名爲PubBase的Microsoft SQL Server 數據庫。每個產品的主鍵是ProductID,Numeric型並且每個產品有一個字母描述字段,名爲ProductName。您使用一個SqlDataAdapter對象和一個SqlCommand對象通過調用一個存儲過程從數據庫中獲取產品數據。您將SqlCommand對象的CommandType屬性設置爲CommandType.StoredProcedure,並將它的CommandText屬性設置爲procProductList。您成功的獲取了一個DataTable對象,其中是已經按ProductID降序排列的產品列表。您打算顯示以相反的字母順序排列的ProductName,請問該怎麼做? (  B  )
  A. 將SqlCommand對象的CommandType屬性修改爲CommandType.Text,將CommandText屬性修改爲”SELECT * FROM procProductList ORDER BY ProductName DESC”。然後將這個DataTable對象綁定到DataGrid控件。
  B. 創建一個基於這個DataTable對象的新的DataView並將這個DataView的Sort屬性設置爲“ProductName DESC”。然後將這個DataView對象綁定到DataGrid控件。
  C. 將DataGrid控件的AllowSorting屬性設置爲True,並將DataGridColumn的SortExpression屬性設置爲 “ProductName DESC”.以顯示ProductName。然後將這個DataTable對象綁定到DataGrid控件。
  D. 將DataTable對象的DisplayExpression屬性設置爲 “ORDER BY ProductName DESC”.。然後將這個DataTable對象綁定到DataGrid控件。
76.C#代碼實現,確保windows程序只有一個實例(instance)
 
        ///<summary>
        ///應用程序的主入口點。
        ///</summary>
        [STAThread]
        staticvoid Main()
        {
            //防止程序多次運行
            if(!OneInstance.IsFirst("GetPayInfo"))
            {
                MessageBox.Show ("警告:程序正在運行中! 請不要重複打開程序!可在右下角系統欄找到!","程序錯誤提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
                return;
            }
            Application.Run(new Form1());
        }
        // ******************* 防止程序多次執行 **************************
        publicabstractclass OneInstance
        {
            ///<summary>
            ///判斷程序是否正在運行
            ///</summary>
            ///<param name="appId">程序名稱</param>
            ///<returns>如果程序是第一次運行返回True,否則返回False</returns>
            publicstaticbool IsFirst(string appId)
            {
                bool ret=false;
                if(OpenMutex(0x1F0001,0,appId)==IntPtr.Zero)
                {
                    CreateMutex(IntPtr.Zero,0,appId);
                    ret=true;
                }
                return ret;
            }  
            [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
            privatestaticextern IntPtr OpenMutex(
                uint dwDesiredAccess, // access
                int bInheritHandle,    // inheritance option
                string lpName          // object name
                );
 
            [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
            privatestaticextern IntPtr CreateMutex(
                IntPtr lpMutexAttributes, // SD
                int bInitialOwner,                       // initial owner
                string lpName                            // object name
                );
        }
3. 簡述 private protected public internal 修飾符的訪問權限。
private : 私有成員, 在類的內部纔可以訪問。protected : 保護成員,該類內部和繼承類中可以訪問。public : 公共成員,完全公開,沒有訪問限制。internal: 在同一命名空間內可以訪問。
4. 寫出一條Sql語句: 取出表A中第31到第40記錄(SQLServer, 以自動增長的ID作爲主鍵,  注意:ID可能不是連續的。)
select top 10 * from A where id not in (select top 30 id from A)
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
5 .列舉ASP.NET 頁面之間傳遞值的幾種方式。
1.     使用QueryString, 如....?id=1; response. Redirect()....
2.使用Session變量
3.使用Server.Transfer
2。請說明在.net中常用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。
session(viewstate) 簡單,但易丟失
application 全局
cookie 簡單,但可能不支持,可能被僞造
input ttype="hidden" 簡單,可能被僞造
url參數簡單,顯示於地址欄,長度有限
數據庫穩定,安全,但性能相對弱
2.override與重載的區別
Override用來重寫父類的方法,重載使用相同名的方法或操作符擁有不同類型的參數
3、.net的錯誤處理機制是什麼
.net錯誤處理機制採用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch爲止。
4、C#中接口和類的異同
接口和類都是類,不同的事,接口只包含方法或屬性的聲明,不包含具體實現方法的代碼,接口可以實現多繼承,而類只能是單繼承,繼承接口的類必須實現接口中聲明的方法或屬性。接口主要定義一種規範,統一調用方法,在大型項目中接口正發揮日益重要的作用。
4、DataReader和DataSet的異同
DataReader和DataSet最大的區別在於,DataReader使用時始終佔用SqlConnection,在線操作數據庫..任何對SqlConnection的操作都會引發DataReader的異常..因爲DataReader每次只在內存中加載一條數據,所以佔用的內存是很小的..因爲DataReader的特殊性和高性能.所以DataReader是隻進的..你讀了第一條後就不能再去讀取第一條了..
DataSet則是將數據一次性加載在內存中.拋棄數據庫連接..讀取完畢即放棄數據庫連接..因爲DataSet將數據全部加載在內存中.所以比較消耗內存...但是確比DataReader要靈活..可以動態的添加行,列,數據.對數據庫進行回傳更新操作...
1.     在c#中using和new這兩個關鍵字有什麼意義,請寫出你所知道的意義?
Using 引入一個名子空間,或在使用了一個對像後自動調用其IDespose,New 實例化一個對像,或修飾一個方法,表此方法完全重寫此方法
2.在下面的例子裏
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
3.下面的例子中
using System;
class A
{
public static int X;
static A(){
X=B.Y+1;
}
}
class B
{
public static int Y=A.X+1;
static B(){}
static void Main(){
Console.WriteLine("X={0},Y={1}",A.X,B.Y);
}
}
產生的輸出結果是什麼?x=1,y=2
4.談談類和結構的區別?
最大區別一個是引用類型,一個是值類型 默認成員訪問爲public是另外一個區別
1. 在.net(C# or vb.net)中如何獲得當前窗體或控件的句柄,特別是控件本身的句柄(請列舉)。
this(C#) Me(vb.net).
2在.net(C# or vb.net)中如何用戶自定義消息,並在窗體中處理這些消息。
在form中重載DefWndProc函數來處理消息:
protected override void DefWndProc ( ref System.WinForms.Message m )
{
switch(m.msg)
{
case WM_Lbutton :
 ///string與MFC中的CString的Format函數的使用方法有所不同
 string message = string.Format("收到消息!參數爲:{0},{1}",m.wParam,m.lParam);
 MessageBox.Show(message);///顯示一個消息框
 break;
case USER:
處理的代碼
default:
 base.DefWndProc(ref m);///調用基類函數處理非自定義消息。
 break;
}
}
3. 在.net(C# or vb.net)如何啓動另一個程序。process
4. 在.net(C# or vb.net)中如何取消一個窗體的關閉
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}
5. 在.net(C# or vb.net)中,Appplication.Exit 還是 Form.Close有什麼不同?
答案:一個是退出整個應用程序,一個是關閉其中一個form
6. 在C#中有一個double型的變量,比如10321.5,比如122235401.21644,作爲貨幣的值如何按各個不同國家的習慣來輸出。比如美國用$10,321.50和$122,235,401.22而在英國則爲£10 321.50和£122 235 401.22
答案:
System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-US");
//System.Globalization.CultureInfo MyCulture = new System.Globalization.CultureInfo("en-GB");爲英國貨幣類型
decimal y = 9999999999999999999999999999m;
string str = String.Format(MyCulture,"My amount = {0:c}",y);
7. 某一密碼僅使用K、L、M、N、O共5個字母,密碼中的單詞從左向右排列,密碼單詞必須遵循如下規則:
(1) 密碼單詞的最小長度是兩個字母,可以相同,也可以不同
(2) K不可能是單詞的第一個字母
(3) 如果L出現,則出現次數不止一次
(4) M不能使最後一個也不能是倒數第二個字母
(5) K出現,則N就一定出現
(6) O如果是最後一個字母,則L一定出現
問題一:下列哪一個字母可以放在LO中的O後面,形成一個3個字母的密碼單詞?
A) K B)L C) M D) N
答案:B
問題二:如果能得到的字母是K、L、M,那麼能夠形成的兩個字母長的密碼單詞的總數是多少?
A)1個 B)3個 C)6個 D)9個
答案:A
問題三:下列哪一個是單詞密碼?
A) KLLN B) LOML C) MLLO D)NMKO
答案:C
8. 62-63=1 等式不成立,請移動一個數字(不可以移動減號和等於號),使得等式成立,如何移動?
答案:62移動成2的6次方
new有幾種用法
第一種:new Class();
第二種:覆蓋方法
public new XXXX(){}
第三種:new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。
2.如何把一個array複製到arrayList裏
foreach( object o in array )arrayList.Add(o);
3.datagrid.datasouse可以連接什麼數據源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList
4.概述反射和序列化
反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。您可以使用反射動態地創建類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。然後,可以調用類型的方法或訪問其字段和屬性
序列化:序列化是將對象轉換爲容易傳輸的格式的過程。例如,可以序列化一個對象,然後使用 HTTP 通過 Internet 在客戶端和服務器之間傳輸該對象。在另一端,反序列化將從該流重新構造對象。
5.概述o/r mapping 的原理
利用反射,配置 將類於數據庫表映射
7.用sealed修飾的類有什麼特點
sealed 修飾符用於防止從所修飾的類派生出其它類。如果一個密封類被指定爲其它類的基類,則會發生編譯時錯誤。
密封類不能同時爲抽象類。
sealed 修飾符主要用於防止非有意的派生,但是它還能促使某些運行時優化。具體說來,由於密封類永遠不會有任何派生類,所以對密封類的實例的虛擬函數成員的調用可以轉換爲非虛擬調用來處理。
11.詳述.NET裏class和struct的異同!
class:
放在 ? struct放在?
struct值傳遞
類與結構有很多相似之處:結構可以實現接口,並且可以具有與類相同的成員類型。然而,結構在幾個重要方面不同於類:結構爲值類型而不是引用類型,並且結構不支持繼承。結構的值存儲在“在堆棧上”或“內聯”。細心的程序員有時可以通過聰明地使用結構來增強性能。
12.概述.NET裏對 remoting 和 webservice 兩項技術的理解和實際中的應用
遠程邏輯調用,remoing接口只能用在.net中
13.什麼是code-behind技術   aspx and cs
14.概述三層結構體系        web/business/dataaccess
15.asp.net
如何實現MVC模式,舉例說明! web/business/dataaccess
2.什麼是ASP.net中的用戶控件
答:用戶控件就是.ascx擴展名的東西嘍,可以拖到不同的頁面中調用,以節省代碼.比如登陸可能在多個頁面上有,就可以做成用戶控件,但是有一個問題就是用戶控件拖到不同級別的目錄下后里面的圖片等的相對路徑會變得不準確,需要自已寫方法調整.
3.什麼叫應用程序域?什麼是受管制的代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別作何解釋?
答:裝箱就是把值類型轉成引用類型,從MS IL角度看好像是boxing,沒記錯的話是把值從堆棧轉到堆中.拆箱相反,重載就是指一個方法名同,參數個數不同,返回值可以相同的方法.CLR是通用語言運行時,其它的不清楚.
4.列舉一下你所瞭解的XML技術及其應用
答:XML可是好東西,保存配置,站與站之間的交流,WEB SERVICE都要用它.
5.值類型和引用類型的區別?寫出C#的樣例代碼。
答:結構是值類型,類是引用類型,所以傳結構就是值類型的應用啦,傳對象或類就是引用類型的,這個不用多寫了吧.
6.ADO.net中常用的對象有哪些?分別描述一下。
答:connection command sqladapter dataset datatable dataview等等.寫不完了.
7.如何理解委託?
答:據說相當於函數指針,定義了委託就可以在不調用原方法名稱的情況下調用那個方法.
msdn2005中是這樣解釋的:
委託具有以下特點:
委託類似於 C++ 函數指針,但它是類型安全的。
委託允許將方法作爲參數進行傳遞。
委託可用於定義回調方法。
委託可以鏈接在一起;例如,可以對一個事件調用多個方法。
方法不需要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法允許將代碼塊作爲參數傳遞,以代替單獨定義的方法。
8.C#中的接口和類有什麼異同。
答:
接口是負責功能的定義,項目中通過接口來規範類,操作類以及抽象類的概念!
而類是負責功能的具體實現!
在類中也有抽象類的定義,抽象類與接口的區別在於:
抽象類是一個不完全的類,類裏面有抽象的方法,屬性,也可以有具體的方法和屬性,需要進一步的專業化。
但接口是一個行爲的規範,裏面的所有東西都是抽象的!
一個類只可以繼承一個基類也就是父類,但可以實現多個接口
9.
。net中讀寫數據庫需要用到哪些類?他們的作用
答:這個類自已可以寫的啊,你是指基類嗎?那configuration,sqlconnection,sqlcommand等都要用到.
10.UDP連接和TCP連接的異同。
答:前者只管傳,不管數據到不到,無須建立連接.後者保證傳輸的數據準確,須要連結.
11.ASP.net的身份驗證方式有哪些?分別是什麼原理?
答:form認證,windows集成認證等,原理不清楚.
13.什麼是code-Behind技術。
答:代碼分離,這是個明智的東西,像ASP這樣混成一堆很不爽.或者可以理解成HTML代碼寫在前臺,C#代碼寫在後臺.當然前臺也有腳本,類的調用等,其實寫在一起也是可以的.
15..net中讀寫XML的類都歸屬於哪些命名空間?
答:System.Xml
16.解釋一下UDDI、WSDL的意義及其作用。
答:
17.什麼是SOAP,有哪些應用。
答:SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。這種相互通信採用的是XML格式的消息,具體請看:http://playist.blogchina.com/2521621.html
20.常用的調用webservice方法有哪些?
答:
可以從瀏覽器、ASP頁或其他WEB服務調用可以使用HTTP-GET   HTTP-POST訪問WEB服務也可以從ASP頁或其他WEB服務向其他WEB服務發出SOAP請求HTTP-GET   HTTP-POST  SOAP  使用WEB服務代理
6.  私有程序集與共享程序集有什麼區別?
一個私有程序集通常爲單個應用程序所使用,並且存儲於這個應用程序所在的目錄之中,或此目錄下面的一個子目錄中。共享程序集通常存儲在全局程序集緩存(Global Assembly Cache)之中,這是一個由.NET運行時所維護的程序集倉庫。共享程序集通常是對許多應用程序都有用的代碼庫,比如.NET Framework類。
7.  請解釋進程與線程的區別?進程與程序的區別?
一般,一個應用程序對應於一個或多個進程,可以把進程看作是該應用程序在*作系統中的標識;而一個進程通常由多個線程組成,而線程是*作系統爲該應用程序分配處理時間的最小單元。
8.  CLR與IL分別是什麼含義?
CLR:公共語言運行時,類似於Java中的JVM,Java虛擬機;在.Net環境下,各種編程語言使用一種共同的基礎資源環境,這就是CLR,CLR將直接與*作系統進行通信,而編程語言如C#.NET將盡量避免直接與*作系統直接通信,加強了程序代碼的執行安全性,可以這樣看:CLR就是具體的編程語言如:C#.NET與*作系統之間的翻譯,同時它爲具體的編程語言提供了許多資源:
IL,中間語言,也稱MSIL,微軟中間語言,或CIL,通用中間語言;所有.NET源代碼(不管用哪種語言編寫)在進行編譯時都被編譯成IL。在應用程序運行時被即時(Just-In-Time,JIT)編譯器處理成爲機器碼,被解釋及執行。
10 .請解釋ASP。NET中以什麼方式進行數據驗證
       Aps.net 中有非空驗證,比較驗證,取值範圍驗證,正則表達式驗證及客戶自定義驗證五大控件,另還有一個集中驗證信息處理控件
11.  WEB控件可以激發服務端事件,請談談服務端事件是怎麼發生並解釋其原理?自動傳回是什麼?爲什麼要使用自動傳回。
在web控件發生事件時,客戶端採用提交的形式將數據交回服務端,服務端先調用Page_Load事件,然後根據傳回的狀態信息自動調用服務端事件自動傳回是當我們在點擊客戶端控件時,採用提交表單的形式將數據直接傳回到務端
只有通過自動傳回才能實現服務端事件的機制,如果沒有自動回傳機制就只能調用客戶端事件,而不能調用服務端事件
12.  WEB控件及HTML服務端控件能否調用客戶端方法?如果能,請解釋如何調用?
可以調用
例如:<asp:TextBox id="TextBox1" οnclick="clientfunction();" runat="server">
</asp:TextBox>
<INPUT id="Button2" value="Button" name="Button2"
runat="server" οnclick="clientfunction();">
13.  請解釋web.config文件中的重要節點
appSettings包含自定義應用程序設置。
system.web 系統配置
compilation動態調試編譯設置
customErrors自定義錯誤信息設置
authentication身份驗證,此節設置應用程序的身份驗證策略。
authorization授權, 此節設置應用程序的授權策略.
14.  請解釋ASP。NET中的web頁面與其隱藏類之間的關係?
一個ASP.NET頁面一般都對應一個隱藏類,一般都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明如下
<%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>
Codebehind="Tst1.aspx.cs" 表明經編譯此頁面時使用哪一個代碼文件
Inherits="T1.Tst1" 表用運行時使用哪一個隱藏類
15.  什麼是viewstate,能否禁用?是否所用控件都可以禁用?
Viewstate是保存狀態的一種機制,EnableViewState屬性設置爲false即可禁用
16.  當發現不能讀取頁面上的輸入的數據時很有可能是什麼原因造成的?怎麼解決
很有可能是在Page_Load中數據處理時沒有進行Page的IsPostBack屬性判斷
17.  請解釋什麼是上下文對象,在什麼情況下要使用上下文對象
上下文對象是指HttpContext類的Current 屬性,當我們在一個普通類中要訪問內置對象(Response,Request,Session,Server,Appliction等)時就要以使用此對象
18.  請解釋轉發與跳轉的區別?
轉發就是服務端的跳轉A頁面提交數據到B頁面,B頁面進行處理然後從服務端跳轉到其它頁面
跳轉就是指客戶端的跳轉
1.請簡述一下用Socket進行同步通訊編程的詳細步驟
1、在應用程序和遠程設備中使用協議和網絡地址初始化套接字
2、在應用程序中通過指定端口和地址建立監聽
3、遠程設備發出連接請求
4、應用程序接受連接產生通信scoket
5、應用程序和遠程設備開始通訊(在通訊中應用程序將掛起直到通訊結束)
6、通訊結束,關閉應用程序和遠程設備的Socket回收資源
1、在C#中,string   str   =   null     string   str   =   “”   請儘量使用文字或圖象說明其中的區別。  
  string   str   =   null   是不給他分配內存空間,string   str   =   “”給它分配長度爲空字符竄的內存空間.      
 
2、請詳述在dotnet中類(class)與結構(struct)的異同:(10)  
  Class可以被實例化,屬於引用類型,是分配在內存的堆上的,Struct屬於值類型,是分配在內存的棧上的.      
  3
、根據委託(delegate)的知識,請完成以下用戶控件中代碼片段的填寫:(10)    
  namespace   test  
  {  
  public   delegate   void   OnDBOperate();  
  public   class   UserControlBase   :   System.Windows.Forms.UserControl    
  {  
  public   event   OnDBOperate   OnNew;  
  privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs   e)  
  {  
  if(e.Button.Equals(BtnNew))  
  {  
        //
請在以下補齊代碼用來調用OnDBOperate委託簽名的OnNew事件。                                                                                                         
  }  
  }  
  }  
  }  
  ____________________________________________________________________  
  if(   OnNew   !=   null   )  
  OnNew(   this,   e   );      
  4
、分析以下代碼,完成填空(10)  
  string   strTmp   =   "abcdefg
某某某";  
  int   i=   System.Text.Encoding.Default.GetBytes(strTmp).Length;  
  int   j=   strTmp.Length;  
 
以上代碼執行完後,i=                                   j=   i還真的不知道,   j=10      
  5
SQLSERVER服務器中,給定表   table1   中有兩個字段   IDLastUpdateDateID表示更新的事務號,   LastUpdateDate表示更新時的服務器時間,請使用一句SQL語句獲得最後更新的事務號。(10)  
  select   top   ID   from   table1   order   by   LastUpdateData   desc     
  8
、簡要談一下您對微軟.NET   構架下remotingwebservice兩項技術的理解以及實際中的應用。(10)  
  remoting
.net   中用來跨越machine,   process,   appdomain   進行方法調用的技術,對於三成結構的程序,就可以使用remoting技術來構建.它是分佈應用的基礎技術.相當於以前的DCOM  Web   Service是一種構建應用程序的普通模型,並能在所有支持internet網通訊的操作系統上實施。Web   Service令基於組件的開發和web的結合達到最佳,基於組件的對象模型  
9.
什麼叫做SQL注入,如何防止?請舉例說明。
利用sql關鍵字對網站進行攻擊。過濾關鍵字'
所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特點,故意從客戶端提交特殊的代碼,從而收集程序及服務器的信息,從而獲取想得到的資料。
http://localhost/lawjia/show.asp?ID=444 and user>0
,這時,服務器運行Select * from 表名 where 字段=444 and user>0這樣的查詢,當然,這個語句是運行不下去的,肯定出錯,錯誤信息如下:
  ·錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]
將 nvarchar 值 'sonybb' 轉換爲數據類型爲 int 的列時發生語法錯誤。
a 產生一個int數組,長度爲100,並向其中隨機插入1-100,並且不能重複。
int[] intArr=new int[100];
ArrayList myList=new ArrayList();
Random rnd=new Random();
while(myList.Count<100)
{
int num=rnd.Next(1,101);
if(!myList.Contains(num))
myList.Add(num);
}
for(int i=0;i<100;i++)
intArr[i]=(int)myList[i];
       20.
請敘述類與結構的區別。
  1)、結構是值類型;
  2)、結構不支持繼承;
  3)、結構不能定義默認的構造函數;
  4)、結構不能定義析構函數;
  5)、結構不能使用初始值設置域值。
 本人今天去面試.NET開發,有大量機試題要做,結果只記住了一道筆試題目:  
    給你兩個8,兩個3,只用   加減乘除和括號運算,怎麼才能得出24?  
  哪位兄弟也有其它面試題目,最好能反應出面試者兩年.net開發水平的?

1樓

我說個吧,以前遇到過的  
  int   i=123;  
  object   obj   =   i;  
  i   =   456;  
  問i和obj的值。

2樓

public   class   MyType  
  {  
      private   static   int   i;  
   
      public   MyType  
      {  
          i   =   1;  
      }  
   
            請填寫函數,使下面的程序能夠運行  
  }  
   
  int   iNum   =   100;  
  MyType   myType   =   (MyType)iNum;

3樓

樓上的題目我不會   是裝箱操作吧。但我不知道結果請指教

4樓

裝箱操作.i被裝箱爲引用.i   =   123;obj   =456

5樓

樓上的,寫倒了.

6樓

暈  
   
  (8-3)%8*3  
   
  不到十秒的事,無聊。

7樓

樓上太沖動了,打錯括號了吧~!(8-3%8)*3  
  算24偶小學的時候經常玩的~!

8樓

8/(3-8/3)

9樓

3%(8*3)*8

10樓

3%8   是多少?     是0還是3?

11樓

to:charles_y(難得糊塗)  
        8/(3-8/3)是怎麼算出來爲24的!你能把步驟寫一遍嗎?

12樓

叫小學生做吧  
  3*8就可以了  
  搞什麼()的  
  這些考官簡直是垃圾

13樓

我有做法   3*8-3/8

14樓

int   i=123;  
  object   obj   =   i;  
  i   =   456;  
   
  我想結果是:  
   
  i=456   obj=(object)123

15樓

public   class   MyType  
  {  
      private   static   int   i;  
   
      public   MyType  
      {  
          i   =   1;  
      }  
   
            請填寫函數,使下面的程序能夠運行  
  }  
   
  int   iNum   =   100;  
  MyType   myType   =   (MyType)iNum;  
   
  -----------------------------  
  類型強制轉換  
  public   static   explicit   operator   MyType(int   number)  
  {  
        return   new   MyType();  
  }

16樓

to:charles_y(難得糊塗)  
        8/(3-8/3)是怎麼算出來爲24的!你能把步驟寫一遍嗎?  
  ----------------------------------  
  不會是真的要我寫吧?  
    3-8/3=   (9-8)/3=1/3  
    8/(1/3)=8*3=24  
   
  難道這不是小學一年級的題目?

17樓

to:charles_y(難得糊塗)  
   
  你的步驟在數學上是對的,如果在計算機裏呢?  
   
  1/3   可是等於0的。

18樓

沒說是一道計算機試題啊,就是一道+-x/算24點嗎

19樓

如果是筆試題目,那上面寫的好像都錯了   ^_^

20樓

using   System;  
  namespace   cs_17  
  {  
  class   cs  
  {  
  public   static   void   Main(string[]   args)  
  {  
  int   i=8;  
  int   j=3;  
  int   k;  
  k=(i^(i+j))*8;  
  Console.WriteLine(k);  
  Console.ReadLine();  
   
  }  
  }  
  }

21樓

3%(8*3)*8

22樓

 
   
  簡單呀,但是在於你怎麼解釋!  
   
  3*8   =   24    
   
  節省了一個3和一個8,還節省了   加減除和括號。效率上也是蠻高的。  
   
  既節省了資源又提高了效率,這個答案是最好的。  
   
 

23樓

要這麼複雜嗎?  
   
  (8-3)*3+8

24樓

哈哈   樓上的   傻瓜!!!   來了個23點

25樓

我寒........爲什麼大家不在那個比較有意義的類型強制轉換的問題上討論而討論這個....24點啊........................

26樓

誰來寫一段:  
   
  VB.NET的代碼???  
   
  樓上的"chester1(學習中)   "寫的是C#的代碼吧?

27樓

int   i=123;  
  object   obj   =   i;  
  i   =   456;  
  問i和obj的值。  
   
  ==========================================  
  i   =   456   obj   =   123  
   
  考查裝箱、拆箱內容。  
   
  對值類型進行裝箱時,必須分配並構造一個全新的對象。

28樓

好難的24點。不會做

29樓

暈  
   
  (8-3)%8*3  
   
  不到十秒的事,無聊。  
  ============  
  不到10秒就做錯了,太快了  
  沒看見   只用   加減乘除和括號運算  
  %算加減乘除和括號裏面那一個

30樓

我就搞不明白爲什麼不是8+8+3+3?

31樓

錯了,原來是求24。唉,看A片看多了,頭都昏了。

32樓

http://superdullwolf.cnzone.net/wolf24.htm

33樓

(8*8)/3+3

34樓

強貼。第一次見到explicit   operator

35樓

快點給分:結果是,  
  (8+3)/3*8


http://lib.manbu.net/s.asp?i=5066050


1. 簡述Web服務器端程序的用途。 
Web服務器端程序,提供了瀏覽器端和服務器端之間的會話功能。 

2. 簡述CSS的用途。
   CSS是樣式表。可以定義很多樣式,這些樣式用一個簡短的字符串來表示,然後在html文件中就可以方
便的引用這些樣式了。 

3. 在Visual Studio.Net中,一個完整的Asp.Net解決方案至少應包括那些項目? 
    沒有嚴格的規定一定要包含哪些項目。只是現在比較流行的和合理的做法是分3層結構,數據訪問層
,業務層,Web層。每個對應1個項目。當然還可以細分。

4. 簡述全局變量和局部變量的區別。 
   全局變量和局部變量的差別:程序上講是作用域不同,生存期不同,存儲上來講,存儲的位置不同,
一個存放在靜態存儲區,另一個存放在動態存儲區。 

5. 簡述傳值調用與傳址調用的主要區別。 
    傳值調用,實參把值傳遞給參數,在被調函數中形參的值得變化不會影響實參。傳址調用,實參把值
的地址傳給了形參,如果被調函數中形參所指的值發生了變化,實參所指的值夜將變化,因爲他們指向的
是同一個地址。
 
6. 試述函數和過程的區別。 
函數和過程不是asp.net的內容吧?pascal中有這個概念,函數可有返回值,存過程沒有(但是可以通過
參數達到這樣的效果)。 

7. 對變量而言,遵循“先聲明,後使用”的原則有什麼好處。 
先聲名,在編譯調試的過程中可以及早的發現問題。衆所周知,解決問題越早付出的代價越少。 

8. HtmlGenericControl控件與那些Html標記對應? 
HtmlGenericControl控件與那些Html標記對應?可以到msdn上察看。這就不累贅了。 

9. 控件LinkButton與Button的主要區別在哪裏? 
  LinkButton和Button外觀上不同,linkbutton上的文本顯示爲超鏈接的樣子,用法和Button相同。 

10. 控件ImageButton與Image有哪些不同? 
ImageButton上顯示的是圖片,用法和Button也大同小異。
 
11. 簡述ASP.NET網頁的執行流程。 
客戶端Request,服務器端Response。其中涉及到驗證方式,公共語言編譯成機器語言(如果是第一次運行
)等等

12. 簡述Cookie的用途及其侷限性。
、Cookie記錄當前被驗證通過的用戶的一些信息。如果需要多用戶會話,Cookie就不實現不了了,就要用
Session了。 
 
13. 在設計ASP.NET應用程序時,怎樣獲取客戶端的IP地址? 
可以在客戶端提取IP,也可以在服務器端提取。客戶端用jscript或javascript,服務器端有相應的類解決。 

14. 在ASP.NET應用程序設計中,Server.MapPath()方法有什麼實用價值?
Server.MapPath(),程序做出來以後,移植性好。 
 
15. 簡述Response對象的主要用途。 
Response對象,頁面跳轉,動態添加客戶端腳本,等等。 

16. 簡述Request對象的主要用途。 
Request,獲取URL參數,記錄了客戶端request的一些信息等等 

17. 試述數據源、DataAdapter與DataSet三者之間的關係。
數據源就是數據存儲的地方;DataSet相當於一個小型的數據庫,用來存放數據。DataAdapter是個適配器
,用來從數據源中提取需要的數據,可以爲DataSet填充數據。 
 
18. 簡述DataAdapter的用途。
DataAdapter是數據庫與Command,Select,Update對象等之間的接口。 
 
19. 簡述認證和授權的概念。
   包名:System.Security.Principal:
Identity:(識別)包裝了已經驗證過的用戶名和認證的方式
 主要成員:Name, IsAuthenticated, AuthenticationType
Principal: 當前代碼的security上下文。包含Identity和Roles. 用於授權
 主要成員:IsInRole, Identity

* // 一般用戶可以有多個Indentity, 即多種身份來訪問不同資源 --pending
* 每個AppDomain裏面都有CallContext,CallContext裏面包含Principal。線程在啓動的時候也會帶上

Pricncipal的ref。靜態方法,僅對當前線程
* Thread.CurrentPrincipal / WindowsIdentity.GetCurrent()靜態方法返回當前用戶。

Permission: 權限。不是用戶需要權限,是執行它的代碼需要權限。
     Demand()要求調用此代碼的代碼有什麼權限。Assert()斷言
三種權限:
  1 代碼權限: 基類爲CodeAccessPermission .用來保護環境變量、文件、訪問非託管代碼。總表參見:
       ms-

help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpguide/html/cpconcodeaccesspermissions.htm
  2 Identity權限:基類爲CodeAccessPermission。對應於控制檯中的信任集設定。基於發行者、強類型

、域、URL。總表:
   ms-help://MS.VSCC.2003/MS.MSDNQTR.2003APR.1033/cpguide/html/cpconidentitypermissions.htm
  3. PrincipalPermission(Role Based Permission)


Authorization 授權 判斷用戶是否有權操作,比如登錄的用戶有沒有權限訪問資源或者數據庫
Authentication 認證 用戶的Identity. 主要有:HTTP基礎認證、證書、Kerberos、Passport、NTLM、

Forms-based、Digest

這兩個東西最好從讀音上區別,以前一直糊塗。一般應用先authenticate用戶, 判斷用戶是否能鏈接到系

統。然後authorization, 判斷對某個功能是否有權限。

authorization一般有兩種:ACL/ROLES
ACL:Acess Control Lists. 判斷用戶是否在有權限的用戶組內。缺點:不能定義動態條件。
Role based: 用戶加入到某個role以後,自動獲得了很多特定的權限。先判斷請求者的Identity, 然後看

它是否在Role裏面。類似windows用戶和組的關係

1. 代碼中的檢查方式:new PrincipalPermission(name,role).Demand();
2. 利用Attribute的方式:[PrincipalPermissionAttribute(SecurityAction.Demand,Name="MyUser", 

Role="Administrator")]
3. 使用 Principal 對象中的屬性和 IsInRole 方法執行顯式安全性檢查。
4. web.config裏面authorization節中的users/roles(這個一般資料都沒提到)



大家一起做.NET面試題bary()
(bary) 得分0
小新(qiaoxinwei) 得分0
隨風緣(deadshot123) 得分4
風平浪靜時人人都能掌舵(luck0235) 得分6
(bary) 得分0
(flowersea312) 得分2
.net纔是硬道理(winsor_w) 得分2
(soarheaven) 得分0
.net纔是硬道理(winsor_w) 得分2
lxhvc(lxhvc) 得分2
維也納nn-下潛15米,潛望鏡升起(viena) 得分2
維也納nn-下潛15米,潛望鏡升起(viena) 得分0
chaircat(chaircat) 得分0
維也納nn-下潛15米,潛望鏡升起(viena) 得分0
師太,老衲受不了了(yizhixiaozhu) 得分0
隱姓埋名(test33) 得分0
豬八戒(zheng616) 得分0
(male110) 得分0
Keep Walking!(zdyguilong) 得分0
CSDN男主角(wuhuiITren) 得分0
(changlongbaobao) 得分0
沙漠裏的螃蟹(sanjin240) 得分0
(JackyAndApplet) 得分0
(sigmazel) 得分0
小鎮姑娘她爹(lowtemper) 得分0
彬彬(lizhizhe2000) 得分0
小新(liangxf0022) 得分0
(lbh119) 得分0
人生一笑而過(waikey) 得分0
(sigmazel) 得分0
我雖不在江湖,但江湖有我的傳說......(mqcan) 得分0
(gzdiablo) 得分0
jag(jaghuang) 得分0
(amnmm) 得分0
(yq_net) 得分0
笑望人生(TomMax) 得分0
浩子(fancystyle) 得分0
無心(pshy) 得分0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章