文中的問題及答案多收集整理自網絡,不保證100%準確,還望斟酌採納。html
答:任何事物均可以理解爲對象,其主要特徵: 繼承。封裝。多態。特色:代碼好維護,安全,隱藏信息 node
答:擴展名爲*.ascx,跟*.aspx在結構上類似,是指頁面中加載的功能塊,只是用戶控件不能單獨做爲頁面運行,程序員
必須嵌入到*.aspx頁面或其它用戶控件中使用。 web
答:應用程序域爲安全性、可靠性、版本控制以及卸載程序集提供了隔離邊界。應用程序域一般由運行庫宿主建立,算法
運行庫宿主負責在運行應用程序以前引導公共語言運行庫。應用程序域提供了一個更安全、用途更廣的處理單元,sql
公共語言運行庫可以使用該單元提供應用程序之間的隔離。託管代碼爲使用基於公共語言運行庫的語言編譯器開發的數據庫
代碼稱爲託管代碼;託管代碼具備許多優勢,例如:跨語言集成、跨語言異常處理、加強的安全性、版本控制和部署編程
支持、簡化的組件交互模型、調試和分析服務等。裝箱和拆箱使值類型可以被視爲對象。對值類型裝箱將把該值類型c#
打包到 Object 引用類型的一個實例中。這使得值類型能夠存儲於垃圾回收堆中。拆箱將從對象中提取值類型。數組
重載:每一個類型成員都有一個惟一的簽名。方法簽名由方法名稱和一個參數列表(方法的參數的順序和類型)組成。
只要簽名不一樣,就能夠在一種類型內定義具備相同名稱的多種方法。當定義兩種或多種具備相同名稱的方法時,就稱做重載。
CTS通用類型系統 (common type system):一種肯定公共語言運行庫如何定義、使用和管理類型的規範。
CLR公共語言運行庫:.NET Framework 提供了一個稱爲公共語言運行庫的運行時環境,它運行代碼並提供使開發過程更輕鬆的服務。
CLS公共語言規範:要和其餘對象徹底交互,而無論這些對象是以何種語言實現的,對象必須只向調用方公開那些它們必須與之互用的
全部語言的通用功能。爲此定義了公共語言規範 (CLS),它是許多應用程序所需的一套基本語言功能。
強類型:C# 是強類型語言;所以每一個變量和對象都必須具備聲明類型。
答:保存配置,站與站之間的交流,WEB SERVICE。以及與數據庫的數據交互等地方都要用它.
答:基於值類型的變量直接包含值。將一個值類型變量賦給另外一個值類型變量時,將複製包含的值。
這與引用類型變量的賦值不一樣,引用類型變量的賦值只複製對對象的引用,而不復制對象自己。
全部的值類型均隱式派生自 System.ValueType。與引用類型不一樣,從值類型不可能派生出新的類型。
但與引用類型相同的是,結構也能夠實現接口。與引用類型不一樣,值類型不可能包含 null 值。然而,
可空類型功能容許將 null 賦給值類型。每種值類型均有一個隱式的默認構造函數來初始化該類型的默認值。
值類型主要由兩類組成:結構、枚舉結構分爲如下幾類:Numeric(數值)類型、整型、浮點型、decimal、
bool、用戶定義的結構。引用類型的變量又稱爲對象,可存儲對實際數據的引用。聲明引用類型的關鍵字:
class、interface、delegate。內置引用類型: object、strin
答:
Connection 打開數據庫鏈接
Command 執行數據庫命令
DataAdapter 鏈接數據,執行數據庫命令,填充DataSet
DataSet 數據在內存中的緩存,數據結構
DataReader 只讀向前的讀取數據庫
答:
至關於函數指針,定義了委託就能夠在不調用原方法名稱的狀況下調用那個方法.
委託具備如下特色:
委託相似於 C++ 函數指針,但它是類型安全的。
委託容許將方法做爲參數進行傳遞。
委託可用於定義回調方法。
委託能夠連接在一塊兒;例如,能夠對一個事件調用多個方法。
方法不須要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。
C# 2.0 版引入了匿名方法的概念,此類方法容許將代碼塊做爲參數傳遞,以代替單獨定義的方法。
答:異:不能直接實例化接口。接口不包含方法的實現。接口、類和結構可從多個接口繼承。可是C#
只支持單繼承:類只能從一個基類繼承實現。類定義可在不一樣的源文件之間進行拆分。
同:接口、類和結構可從多個接口繼承。接口相似於抽象基類:繼承接口的任何非抽象類型都必須實現接口的全部成員。
接口能夠包含事件、索引器、方法和屬性。一個類能夠實現多個接口。
答:前者只管傳,無論數據到不到,無須創建鏈接.後者保證傳輸的數據準確,需要連結.
答:Windows 身份驗證提供程序:提供有關如何將 Windows 身份驗證與 Microsoft Internet 信息服務
(IIS) 身份驗證結合使用來確保 ASP.NET 應用程序安全的信息。Forms 身份驗證提供程序:提供有關如何
使用您本身的代碼建立應用程序特定的登陸窗體並執行身份驗證的信息。使用 Forms 身份驗證的一種簡便方
法是使用 ASP.NET 成員資格和 ASP.NET 登陸控件,它們一塊兒提供了一種只需少許或無需代碼就能夠收集
、驗證和管理用戶憑據的方法。Passport 身份驗證提供程序:提供有關由 Microsoft 提供的集中身份驗證服
務的信息,該服務爲成員站點提供單一登陸和核心配置
答:進程和線程都是由操做系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的併發性。
進程和線程的區別在於:
簡而言之,一個程序至少有一個進程,一個進程至少有一個線程.線程的劃分尺度小於進程,使得多線程程序的併發性高。
另外,進程在執行過程當中擁有獨立的內存單元,而多個線程共享內存,從而極大地提升了程序的運行效率。
線程在執行過程當中與進程仍是有區別的。每一個獨立的線程有一個程序運行的入口、順序執行序列和程序的出口。
可是線程不可以獨立執行,必須依存在應用程序中,由應用程序提供多個線程執行控制。
從邏輯角度來看,多線程的意義在於一個應用程序中,有多個執行部分能夠同時執行。但操做系統並無將多個線
程看作多個獨立的應用,來實現進程的調度和管理以及資源分配。這就是進程和線程的重要區別。
進程是具備必定獨立功能的程序關於某個數據集合上的一次運行活動,進程是系統進行資源分配和調度的一個獨立單位.
線程是進程的一個實體,是CPU調度和分派的基本單位,它是比進程更小的能獨立運行的基本單位.線程本身基本上不擁有
系統資源,只擁有一點在運行中必不可少的資源(如程序計數器,一組寄存器和棧),可是它可與同屬一個進程的其餘的線程共
享進程所擁有的所有資源.一個線程能夠建立和撤銷另外一個線程;同一個進程中的多個線程之間能夠併發執行.
答:代碼分離,這是個明智的東西,像ASP這樣混成一堆很不爽.或者能夠理解成HTML代碼寫在前臺,C#代碼寫在後臺.
固然前臺也有腳本,類的調用等,其實寫在一塊兒也是能夠的.
答:
UDDI:統一描述、發現和集成協議(UDDI, Universal Description, Discovery and Integration)是一套基於Web的、
分佈式的、爲Web服務提供的信息註冊中心的實現標準規範,同時也包含一組使企業能將自身提供的Web服務註冊以使
得別的企業可以發現的訪問協議的實現標準。UDDI 提供了一組基於標準的規範用於描述和發現服務,還提供了一組基於
因特網的實現。WSDL:WSDL描述Web服務的公共接口。這是一個基於XML的關於如何與Web服務通信和使用的服務描述.
答:SOAP(Simple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,
是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最經常使用的仍是HTTP協議),能夠容許任何類型的對象或代碼,
在任何平臺上,以任何一直語言相互通訊。SOAP 是一種輕量級協議,用於在分散型、分佈式環境中交換結構化信息。 SOAP 利用
XML 技術定義一種可擴展的消息處理框架,它提供了一種可經過多種底層協議進行交換的消息結構。這種框架的設計思想是要獨立
於任何一種特定的編程模型和其餘特定實現的語義。SOAP 定義了一種方法以便將 XML 消息從 A 點傳送到 B 點。爲此,它提供了
一種基於 XML 且具備如下特性的消息處理框架:1) 可擴展,2) 可經過多種底層網絡協議使用,3) 獨立於編程模型。
答:.NET Framework 的垃圾回收器管理應用程序的內存分配和釋放。每次您使用 new 運算符建立對象時,運行庫都
從託管堆爲該對象分配內存。只要託管堆中有地址空間可用,運行庫就會繼續爲新對象分配空間。可是,內存不是無限大的。
最終,垃圾回收器必須執行回收以釋放一些內存。垃圾回收器優化引擎根據正在進行的分配狀況肯定執行回收的最佳時間。
當垃圾回收器執行回收時,它檢查託管堆中再也不被應用程序使用的對象並執行必要的操做來回收它們佔用的內存。
答:SOAP和WSDL
解1: 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)
答:
1.使用QueryString, 如....?id=1; response.Redirect()....
2.使用Session變量
3.使用Server.Transfer
4.使用Application變量
5.使用Cookie
6. 寫出程序的輸出結果
1 class Class1 2
3 { 4
5 private string str = "Class1.str"; 6
7 private int i = 0; 8
9 static void StringConvert(string str) 10
11 { 12
13 str = "string being converted."; 14
15 } 16
17
18
19 static void StringConvert(Class1 c) 20
21 { 22
23 c.str = "string being converted."; 24
25 } 26
27
28
29 static void Add(int i) 30
31 { 32
33 i++; 34
35 } 36
37
38
39 static void AddWithRef(ref int i) 40
41 { 42
43 i++; 44
45 } 46
47
48
49 static void Main() 50
51 { 52
53 int i1 = 10; 54
55 int i2 = 20; 56
57 string str = "str"; 58
59 Class1 c = new Class1(); 60
61 Add(i1); 62
63 AddWithRef(ref i2); 64
65 Add(c.i); 66
67 StringConvert(str); 68
69 StringConvert(c); 70
71 Console.WriteLine(i1); 72
73 Console.WriteLine(i2); 74
75 Console.WriteLine(c.i); 76
77 Console.WriteLine(str); 78
79 Console.WriteLine(c.str); 80
81 } 82
83 }
答案(考查值引用和對象引用): 10 21 0 str string being converted.
1 public abstract class A 2
3 { 4
5 public A() 6
7 { 8
9 Console.WriteLine('A'); 10
11 } 12
13
14
15 public virtual void Fun() 16
17 { 18
19 Console.WriteLine("A.Fun()"); 20
21 } 22
23 } 24
25
26
27 public class B: A 28
29 { 30
31 public B() 32
33 { 34
35 Console.WriteLine('B'); 36
37 } 38
39
40
41 public new void Fun() 42
43 { 44
45 Console.WriteLine("B.Fun()"); 46
47 } 48
49
50
51 public static void Main() 52
53 { 54
55 A a = new B(); 56
57 a.Fun(); 58
59 } 60
61 }
答案(考查在繼承類中構造函數, 以及new 方法):A B A.Fun()
1 public class A 2
3 { 4
5 public virtual void Fun1(int i) 6
7 { 8
9 Console.WriteLine(i); 10
11 } 12
13
14
15 public void Fun2(A a) 16
17 { 18
19 a.Fun1(1); 20
21 Fun1(5); 22
23 } 24
25 } 26
27
28
29 public class B : A 30
31 { 32
33 public override void Fun1(int i) 34
35 { 36
37 base.Fun1 (i + 1); 38
39 } 40
41
42
43 public static void Main() 44
45 { 46
47 B b = new B(); 48
49 A a = new A(); 50
51 a.Fun2(b); 52
53 b.Fun2(a); 54
55 } 56
57 }
答案:2 5 1 6
答案:
1 public class MainClass 2
3 { 4
5 public static void Main() 6
7 { 8
9 Console.WriteLine(Foo(30)); 10
11 } 12
13 public static int Foo(int i) 14
15 { 16
17 if (i <= 0) 18
19 return 0; 20
21 else if(i > 0 && i <= 2) 22
23 return 1; 24
25 else return Foo(i -1) + Foo(i - 2); 26
27 } 28
29 }
要求: 1.要有聯動性,老鼠和主人的行爲是被動的。2.考慮可擴展性,貓的叫聲可能引發其餘聯動效應。
要點:1. 聯動效果,運行代碼只要執行Cat.Cryed()方法。2. 對老鼠和主人進行抽象
評分標準: <1>.構造出Cat、Mouse、Master三個類,並能使程序運行(2分)
<2>從Mouse和Master中提取抽象(5分)
<3>聯動效應,只要執行Cat.Cryed()就可使老鼠逃跑,主人驚醒。(3分)
答案:
1 public interface Observer 2
3 { 4
5 void Response(); //觀察者的響應,如是老鼠見到貓的反映
6
7 } 8
9
10
11 public interface Subject 12
13 { 14
15 void AimAt(Observer obs); //針對哪些觀察者,這裏指貓的要撲捉的對象---老鼠
16
17 } 18
19
20
21 public class Mouse : Observer 22
23 { 24
25 private string name; 26
27
28
29 public Mouse(string name, Subject subj) 30
31 { 32
33 this.name = name; 34
35 subj.AimAt(this); 36
37 } 38
39
40
41 public void Response() 42
43 { 44
45 Console.WriteLine(name + " attempt to escape!"); 46
47 } 48
49 } 50
51
52
53 public class Master : Observer 54
55 { 56
57 public Master(Subject subj) 58
59 { 60
61 subj.AimAt(this); 62
63 } 64
65
66
67 public void Response() 68
69 { 70
71 Console.WriteLine("Host waken!"); 72
73 } 74
75 } 76
77
78
79 public class Cat : Subject 80
81 { 82
83 private ArrayList observers; 84
85
86
87 public Cat() 88
89 { 90
91 this.observers = new ArrayList(); 92
93 } 94
95
96
97 public void AimAt(Observer obs) 98
99 { 100
101 this.observers.Add(obs); 102
103 } 104
105
106
107 public void Cry() 108
109 { 110
111 Console.WriteLine("Cat cryed!"); 112
113 foreach (Observer obs in this.observers) 114
115 { 116
117 obs.Response(); 118
119 } 120
121 } 122
123 } 124
125
126
127 class MainClass 128
129 { 130
131 static void Main(string[] args) 132
133 { 134
135 Cat cat = new Cat(); 136
137 Mouse mouse1 = new Mouse("mouse1", cat); 138
139 Mouse mouse2 = new Mouse("mouse2", cat); 140
141 Master master = new Master(cat); 142
143 cat.Cry(); 144
145 } 146
147 } 148
149
150
151 //---------------------------------------------------------------------------------------------
152
153
154
155 設計方法二: 使用event -- delegate設計.. 156
157 public delegate void SubEventHandler(); 158
159
160
161 public abstract class Subject 162
163 { 164
165 public event SubEventHandler SubEvent; 166
167 protected void FireAway() 168
169 { 170
171 if (this.SubEvent != null) 172
173 this.SubEvent(); 174
175 } 176
177 } 178
179
180
181 public class Cat : Subject 182
183 { 184
185 public void Cry() 186
187 { 188
189 Console.WriteLine("cat cryed."); 190
191 this.FireAway(); 192
193 } 194
195 } 196
197
198
199 public abstract class Observer 200
201 { 202
203 public Observer(Subject sub) 204
205 { 206
207 sub.SubEvent += new SubEventHandler(Response); 208
209 } 210
211
212
213 public abstract void Response(); 214
215 } 216
217
218
219 public class Mouse : Observer 220
221 { 222
223 private string name; 224
225 public Mouse(string name, Subject sub) : base(sub) 226
227 { 228
229 this.name = name; 230
231 } 232
233
234
235 public override void Response() 236
237 { 238
239 Console.WriteLine(name + " attempt to escape!"); 240
241 } 242
243 } 244
245
246
247 public class Master : Observer 248
249 { 250
251 public Master(Subject sub) : base(sub){} 252
253
254
255 public override void Response() 256
257 { 258
259 Console.WriteLine("host waken"); 260
261 } 262
263 } 264
265
266
267 class Class1 268
269 { 270
271 static void Main(string[] args) 272
273 { 274
275 Cat cat = new Cat(); 276
277 Mouse mouse1 = new Mouse("mouse1", cat); 278
279 Mouse mouse2 = new Mouse("mouse2", cat); 280
281 Master master = new Master(cat); 282
283 cat.Cry(); 284
285 } 286
287 }
答案:委託是一個能夠對方法進行引用的類。與其餘的類不一樣,委託類具備一個簽名,而且它只能對與其簽名匹配的方法進行引用。
這樣,委託就等效於一個類型安全函數指針或一個回調。事件是一種委託。
答案:接口是一個純粹的抽象類,沒有任何實際的東西,只是定義了一個框架,而抽象類裏面能夠有實際的一個方法,
並不要求全部的方法都是抽象的。能夠實現一個接口中的全部方法,也能夠繼承一個抽象的類,而後覆寫其中的方法。
接口通常只有方法,而沒有數據成員或屬性。抽象類有方法,也有數據成員或屬性,通常狀況下,優先考慮用接口,
只有當可能要訪問到數據成員或屬性時,用抽象類。
答案:final修飾符用於指定類不能擴展或者方法或屬性不能重寫。它將防止其餘類經過重寫重要的函數來更改該類的行爲。
帶有final修飾符的方法能夠由派生類中的方法來隱藏或重載。finally 塊用於清除在 try 塊中分配的任何資源。
控制老是傳遞給 finally 塊,與 try 塊的存在方式無關。finalize容許 Object 在「垃圾回收」回收 Object 以前
嘗試釋放資源並執行其餘清理操做。
答案:第一種:new Class();
第二種:覆蓋方法public new XXXX(){};
第三種:new 約束指定泛型類聲明中的任何類型參數都必須有公共的無參數構造函數。
答案:foreach( object o in array )arrayList.Add(o);
答案:反射:程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對象。
您可使用反射動態地建立類型的實例,將類型綁定到現有對象,或從現有對象中獲取類型。而後,能夠調用類型的
方法或訪問其字段和屬性
序列化:序列化是將對象轉換爲容易傳輸的格式的過程。例如,能夠序列化一個對象,而後使用 HTTP 經過 Internet
在客戶端和服務器之間傳輸該對象。在另外一端,反序列化將從該流從新構造對象。
答案:sealed 修飾符用於防止從所修飾的類派生出其它類。若是一個密封類被指定爲其餘類的基類,則會發生編譯時錯誤。
密封類不能同時爲抽象類。sealed 修飾符主要用於防止非有意的派生,可是它還能促使某些運行時優化。具體說來,因爲
密封類永遠不會有任何派生類,因此對密封類的實例的虛擬函數成員的調用能夠轉換爲非虛擬調用來處理。
1 String strTemp ="abcdefg 某某某"; 2
3 Int i System.Text.Encoding.Default.GetBytes(strTemp).Length; 4
5 Int j = strTemp.Length; 6
7 問:i=(14 ) ;j=(11 )
答案:i=(14 ) ;j=(11 ) 中文兩個字節
答案:Using 引入一個名子空間,或在使用了一個對像後自動調用其IDespose,New 實例化一個對像,
或修飾一個方法,表此方法徹底重寫此方法。
1 using System; 2
3 class A 4
5 { 6
7 public A() 8
9 { 10
11 PrintFields(); 12
13 } 14
15
16
17 public virtual void PrintFields(){} 18
19 } 20
21
22
23 class B:A 24
25 { 26
27 int x=1; 28
29 int y; 30
31 public B() 32
33 { 34
35 y=-1; 36
37 } 38
39
40
41 public override void PrintFields() 42
43 { 44
45 Console.WriteLine("x={0},y={1}",x,y); 46
47 } 48
49 }
答案:X=1,Y=0
1 using System; 2
3 class A 4
5 { 6
7 public static int X; 8
9
10
11 static A() 12
13 { 14
15 X=B.Y+1; 16
17 } 18
19 } 20
21
22
23 class B 24
25 { 26
27 public static int Y=A.X+1; 28
29 static B(){} 30
31 static void Main() 32
33 { 34
35 Console.WriteLine("X={0},Y={1}",A.X,B.Y); 36
37 } 38
39 }
答案:x=1,y=2
答案:最大區別一個是引用類型,一個是值類型默認成員訪問爲public是另一個區別
答案:
1 Random r = new Random(); 2 StringBuilder sb = new StringBuilder(10000); 3 for (int i = 0; i < 10000; i++) 4 { 5 sb.Append((char)((int)'a' + r.Next(0, 26))); 6 } 7 string str = sb.ToString();
答案:SQL注入就是在正常的SQL執行語句中惡意插入攻擊者想要運行的sql語句。1.最根本的,不使用組合sql的方法,
而是經過使用命令參數方式來執行命令,好比咱們把sql改爲這種方式:
string strSql = "select * from [user] where LoginName =@LoginName and Pwd =@Pwd ";
而後經過sqlcommand來執行它,就能夠從根本上解決這個問題。2.控制參數的長度。由於要想進行sql注入的話,
須要必定長度的字符串才能執行,若是咱們規定LoginName 的長度最長不超過8個,通常不會形成損害,固然這個只
是在特殊的狀況下才使用,好比有些狀況可能不能使用命令參數方式。
1 int i=5; 2
3 int j=5; 4
5 if(Object.ReferenceEquals(i,j)) Console.WriteLine("Equal"); 6
7 else Console.WriteLine("Not Equal");
答案:Not Equal,由於引用的地址不一樣。
答 :
private : 私有成員, 在類的內部才能夠訪問。
protected : 保護成員,該類內部和繼承類中能夠訪問。
public : 公共成員,徹底公開,沒有訪問限制。
internal: 在同一命名空間內能夠訪問。
答:
1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session變量
3).使用Server.Transfer
答 : 委託能夠把一個方法做爲參數代入另外一個方法。
委託能夠理解爲指向一個函數的引用。
是,是一種特殊的委託
答 : override 與重載的區別。重載是方法的名稱相同。參數或參數類型不一樣,進行屢次重載以適應不一樣的須要override
是進行基類中函數的重寫。爲了適應須要。
答 : QueryString、FormsAuthentication、 this.Server.Transfer
答:
1 foreach (Control control in this.Controls) 2 { 3 if (control is TextBox) 4 { 5 TextBox tb = (TextBox)control ; 6 tb.Text = String.Empty ; 7 } 8 }
答:
1 int[] array = new int [*] ; 2 int temp = 0 ; 3 for (int i = 0 ; i < array.Length - 1 ; i++) 4 { 5 for (int j = i + 1 ; j < array.Length ; j++) 6 { 7 if (array[j] < array[i]) 8 { 9 temp = array[i] ; 10 array[i] = array[j] ; 11 array[j] = temp ; 12 } 13 } 14 }
答:能夠用任意類型。
答:
1 int sum=0; 2 bool flag=true; 3 for(int i=1;i<=m;i++) 4 { 5 if(flag) 6 sum+=i; 7 else
8 sum-=i; 9 flag=!flag; 10 } 11 return sum;
1 using System; 2 class A 3 { 4 public A() 5 { 6 PrintFields(); 7 } 8 public virtual void PrintFields(){} 9 } 10 class B:A 11 { 12 int x=1; 13 int y; 14 public B() 15 { 16 y=-1; 17 } 18 public override void PrintFields() 19 { 20 Console.WriteLine("x={0},y={1}",x,y); 21 }
答:X=1,Y=0
答:應用程序域能夠理解爲一種輕量級進程。起到安全的做用。佔用資源小。
答:CTS:通用語言系統。CLS:通用語言規範。CLR:公共語言運行庫。
答:從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。
答:unsafe:非託管代碼。不通過CLR運行。
答:RTTI:類型識別系統。
答:SqlConnection/OleDbConnection:創建數據庫的鏈接;
SqlCommand/OleDbCommand:執行數據庫腳本。
答:程序集。(中間語言,源數據,資源,裝配清單)
答:
1.使用WSDL.exe命令行工具。
2.使用VS.NET中的Add Web Reference菜單選項
答:服務器端向客戶端發送一個進程編號,一個程序域編號,以肯定對象的位置。
1 public void test(int i) 2 { 3 lock(this) 4 { 5 if (i>10) 6 { 7 i--; 8 test(i); 9 } 10 } 11 }
答:不會發生死鎖,(但有一點int是按值傳遞的,因此每次改變的都只是一個副本,所以不會出現死鎖。
但若是把int換作一個object,那麼死鎖會發生)
答:WS主要是可利用HTTP,穿透防火牆。而Remoting能夠利用TCP/IP,二進制傳送提升效率。
remoting是.net 中用來跨越machine, process, appdomain 進行方法調用的技術,對於三層結構的程序,
就可使用remoting技術來構建.它是分佈應用的基礎技術.至關於之前的DCOM Web Service是一種構建
應用程序的普通模型,並能在全部支持internet網通信的操做系統上實施。Web Service令基於組件的開發和
web的結合達到最佳,基於組件的對象模型
答:根據點擊的列頭,包該列的名稱取出,按照該列名排序後,再綁定到ListView中。
1 <FileSystem>
2 < DriverC >
3 <Dir DirName=」MSDOS622」>
4 <File FileName =」 Command.com」 ></File>
5 </Dir>
6 <File FileName =」MSDOS.SYS」 ></File>
7 <File FileName =」 IO.SYS」 ></File>
8 </DriverC>
9 </FileSystem>
答:圖就不畫了,直接把程序寫出來:
1 Public void DomDepthFirst(XmlNode currentNode) 2 { 3 XmlNode node=currentNode.FirstChild; 4 while(node!=null) 5 { 6 DomDepthFirst(node); 7 node=node.NextSibling; 8 } 9 if(node.Name=="File") 10 { 11 Console.Write(((XmlElement)node).GetAttribute("FileName")+"\r\n"); 12 } 13 }
答:IEnumerable 、 GetEnumerator。
答:GC是垃圾收集器。程序員不用擔憂內存管理,由於垃圾收集器會自動進行管理。要請求垃圾收集,
能夠調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
答:兩個對象,一個是「xyz」,一個是指向「xyz」的引用對像s。
答:
聲明方法的存在而不去實現它的類被叫作抽像類(abstract class),它用於要建立一個體現某些基本行爲的類,
併爲該類聲明方法,但不能在該類中實現該類的狀況。不能建立abstract 類的實例。然而能夠建立一個變量,
其類型是一個抽像類,並讓它指向具體子類的一個實例。不能有抽像構造函數或抽像靜態方法。Abstract 類的
子類爲它們父類中的全部抽像方法提供實現,不然它們也是抽像類爲。取而代之,在子類中實現該方法。知道其
行爲的其它類能夠在類中實現這些方法。
接口(interface)是抽像類的變體。在接口中,全部方法都是抽像的。多繼承性可經過實現這樣的接口而得到。
接口中的全部方法都是抽像的,沒有一個有程序體。接口只能夠定義static final成員變量。接口的實現與子類類似,
除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。
而後,它能夠在實現了該接口的類的任何對像上調用接口的方法。因爲有抽像類,它容許使用接口名做爲引用變量的類型。
一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換,instanceof 運算符能夠用來決定某對象的類是否實現了接口。
答:啓動一個線程是調用start()方法,使線程所表明的虛擬處理機處於可運行狀態,這意味着它能夠由JVM調度並執行。
這並不意味着線程就會當即運行。run()方法能夠產生必須退出的標誌來中止一個線程。
答:造函數接口能夠繼承接口。抽像類能夠實現(implements)接口,抽像類是否可繼承實體類,但前提是實體
類必須有明確的結構。
答:構造器Constructor不能被繼承,所以不能重寫Overriding,但能夠被重載Overloading。
答:String類是final類故不能夠繼承。
答:不對,有相同的hash code。
答:switch(expr1)中,expr1是一個整型,字符或字符串,所以能夠做用在byte和long上,也能夠做用在string上。
答:不能,一個對象的一個synchronized方法只能由一個線程訪問。
答:都不能。
答:List,Set是Map不是
答:Set裏的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
equals()和==方法決定引用值是否指向同一對像equals()在類中被覆蓋,爲的是當兩個分離的對象的內容和
類型相配的話,返回真值。
答:數組和string都沒有Length()方法,只有Length屬性。
答:sleep()方法是將當前線程掛起指定的時間。
wait()釋放對象上的鎖並阻塞當前線程,直到它從新獲取該鎖。
答:short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化爲short型。
可修改成s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。
答:
final-修飾符(關鍵字)若是一個類被聲明爲final,意味着它不能再派生出新的子類,不能做爲父類被繼承。
所以 一個類不能既被聲明爲 abstract的,又被聲明爲final的。將變量或方法聲明爲final,能夠保證它們在使用中
不被改變。被聲明爲final的變量必須在聲明時給定初值,而在之後的引用中只能讀取,不可修改。被聲明爲 final的方
法也一樣只能使用,不能重載finally-再異常處理時提供 finally 塊來執行任何清除操做。若是拋出一個異常,那麼相匹
配的 catch 子句就會 執行,而後控制就會進入 finally 塊(若是有的話)。finalize-方法名。Java 技術容許使用 finalize()
方法在垃圾收集器將對像從內存中清除出去以前作必要的清理 工做。這個方法是由垃圾收集器在肯定這個對象沒有被引用時
對這個對象調用的。它是在 Object 類中定義的 ,所以全部的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執
行其餘清理工做。finalize() 方法是在垃圾收集器刪除對像以前對這個對象調用的。
答:用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的.
.取得最大標識要有一個存儲過程來獲取.
答:是iis中因爲有進程回收機制,系統繁忙的話Session會丟失,能夠用Sate server或SQL Server數據庫的方式存儲
Session不過這種方式比較慢,並且沒法捕獲Session的END事件。
答:進程是系統進行資源分配和調度的單位;線程是CPU調度和分派的單位,一個進程能夠有多個線程,這些線程共享這個進程的資源。
答:棧是編譯期間就分配好的內存空間,所以你的代碼中必須就棧的大小有明確的定義;堆是程序運行期間動態分配的內存空間,
你能夠根據程序的運行狀況肯定要分配的堆內存的大小
答:它們被稱爲常成員變量和常成員函數,又稱爲類成員變量和類成員函數。分別用來反映類的狀態。好比類成員變量能夠用來統
計類實例的數量,類成員函數負責這種統計的動做。
答:asp解釋形,aspx編譯型,性能提升,能夠跟美工的工做分開進行,更有利於團隊開發。