文中的问题及答案多收集整理自网络,不保证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编译型,性能提升,能够跟美工的工做分开进行,更有利于团队开发。