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/manager@cl.world
(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/repadmin@cl.world
BEGIN
DBMS_DEFER_SYS.SCHEDULE_PURGE (
next_date => SYSDATE,
interval => ’SYSDATE + 1/24’,
delay_seconds => 0);
END;
在建立好站点cl.world后,以同样的方法创建站点js. world。
(6)创建各主控站点之间的调度链接
创建各主控站点之间的调度链接需要先在各主控站点间建立数据库链接,之后为每个数据库链接定义调度时间。
首先,在处理站点上建立与解释站点的数据库链接,这里需要先建立一个公用数据库链接,供其他私有数据库链接来使用。
CONNECT SYSTEM/MANAGER@cl.world
CREATE PUBLIC DATABASE LINK js.world USING ’js.world’;
CONNECT repadmin/repadmin@cl.world
CREATE DATABASE LINK js.world CONNECT TO repadmin
IDENTIFIED BY repadmin;
同样,在解释站点上建立与处理站点的数据库链接
CONNECT SYSTEM/MANAGER@js.world
CREATE PUBLIC DATABASE LINK cl.world USING ’cl.world’;
CONNECT repadmin/repadmin@js.world
CREATE DATABASE LINK cl.world CONNECT TO repadmin
IDENTIFIED BY repadmin;
调度链接确定本站点上的事务向其他站点发送的频度,下面的代码为10分钟一次:
CONNECT repadmin/repadmin@cl.world
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/repadmin@cl.world
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程序员面试题 看你能否通过技术关? |
||
面试题 |
.net面试题大全(有答案)
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();
}
14.下面这段代码有错误么?case():不行 default;
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault;
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page 可以被继承么?可以
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参数显式传递到方法。
通过名称标识。 通过签名标识。
通过简单名称或成员访问来访问。 通过元素访问来访问。
可以为静态成员或实例成员。 必须为实例成员。
属性的 get 访问器没有参数。 索引器的 get 访问器具有与索引器相同的形参表。
属性的 set 访问器包含隐式 value 参数。 除了 value 参数外,索引器的 set 访问器还具有与索引器相同的形参表。
为了不违背编码规则,通常把static数据成员声明为private,然后通过statci property提供读写访问。
const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值不能被修改。常数声明引入给定类型的一个或多个常数。
const数据成员的声明式必须包含初值,且初值必须是一个常量表达式。因为它是在编译时就需要完全评估。
const成员可以使用另一个const成员来初始化,前提是两者之间没有循环依赖。
readonly在运行期评估赋值,使我们得以在确保“只读访问”的前提下,把object的初始化动作推迟到运行期进行。
readonly 关键字与 const 关键字不同: const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数。
readonly 只能在声明时或者构造函数里面初始化,并且不能在 static 修饰的构造函数里面。
所有的用户都存在于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>
A.重写OnPreRender事件,当Grid的Footer行被创建时显示合计数。
B.重写OnItemCreated事件,当Grid的Footer行被创建时显示合计数。
C.重写OnItemDataBound事件,当Grid的Footer行被创建时显示合计数。
D. 重写OnLayout事件,当Grid的Footer行被创建时显示合计数。
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错误。
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”
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 文件。
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控件。
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)
5 .列举ASP.NET 页面之间传递值的几种方式。
2.使用Session变量
3.使用Server.Transfer
2 。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
session(viewstate) 简单,但易丢失
application 全局
cookie 简单,但可能不支持,可能被伪造
input ttype="hidden" 简单,可能被伪造
url参数简单,显示于地址栏,长度有限
数据库稳定,安全,但性能相对弱
DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存...但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作...
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.下面的例子中
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.谈谈类和结构的区别?
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;
}
}
{
e.Cancel=true;
}
答案:一个是退出整个应用程序,一个是关闭其中一个form
答案:
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);
(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
A)1个 B)3个 C)6个 D)9个
答案:A
A) KLLN B) LOML C) MLLO D)NMKO
答案:C
答案:62移动成2的6次方
第一种: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 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
class: 放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。
12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。
远程逻辑调用,remoing接口只能用在.net中
13.什么是code-behind技术 aspx and cs
15.asp.net 如何实现MVC模式,举例说明! web/business/dataaccess
答:用户控件就是.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服务代理
1 、在应用程序和远程设备中使用协议和网络地址初始化套接字
2、在应用程序中通过指定端口和地址建立监听
3、远程设备发出连接请求
4、应用程序接受连接产生通信scoket
5、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)
6、通讯结束,关闭应用程序和远程设备的Socket回收资源
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 中有两个字段 ID 、 LastUpdateDate , ID 表示更新的事务号, LastUpdateDate 表示更新时的服务器时间,请使用一句 SQL 语句获得最后更新的事务号。 (10)
select top ID from table1 order by LastUpdateData desc
8 、简要谈一下您对微软 .NET 构架下 remoting 和 webservice 两项技术的理解以及实际中的应用。 (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][ODBC SQL Server Driver][SQL Server] 将 nvarchar 值 'sonybb' 转换为数据类型为 int 的列时发生语法错误。
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)、结构不能使用初始值设置域值。
给你两个8,两个3,只用 加减乘除和括号运算,怎么才能得出24?
哪位兄弟也有其它面试题目,最好能反应出面试者两年.net开发水平的?
我说个吧,以前遇到过的
int i=123;
object obj = i;
i = 456;
问i和obj的值。
public class MyType
{
private static int i;
public MyType
{
i = 1;
}
请填写函数,使下面的程序能够运行
}
int iNum = 100;
MyType myType = (MyType)iNum;
楼上的题目我不会 是装箱操作吧。但我不知道结果请指教
装箱操作.i被装箱为引用.i = 123;obj =456
楼上的,写倒了.
晕
(8-3)%8*3
不到十秒的事,无聊。
楼上太冲动了,打错括号了吧~!(8-3%8)*3
算24偶小学的时候经常玩的~!
8/(3-8/3)
3%(8*3)*8
3%8 是多少? 是0还是3?
to:charles_y(难得糊涂)
8/(3-8/3)是怎么算出来为24的!你能把步骤写一遍吗?
叫小学生做吧
3*8就可以了
搞什么()的
这些考官简直是垃圾
我有做法 3*8-3/8
int i=123;
object obj = i;
i = 456;
我想结果是:
i=456 obj=(object)123
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();
}
to:charles_y(难得糊涂)
8/(3-8/3)是怎么算出来为24的!你能把步骤写一遍吗?
----------------------------------
不会是真的要我写吧?
3-8/3= (9-8)/3=1/3
8/(1/3)=8*3=24
难道这不是小学一年级的题目?
to:charles_y(难得糊涂)
你的步骤在数学上是对的,如果在计算机里呢?
1/3 可是等于0的。
没说是一道计算机试题啊,就是一道+-x/算24点吗
如果是笔试题目,那上面写的好像都错了 ^_^
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();
}
}
}
3%(8*3)*8
简单呀,但是在于你怎么解释!
3*8 = 24
节省了一个3和一个8,还节省了 加减除和括号。效率上也是蛮高的。
既节省了资源又提高了效率,这个答案是最好的。
要这么复杂吗?
(8-3)*3+8
哈哈 楼上的 傻瓜!!! 来了个23点
我寒........为什么大家不在那个比较有意义的类型强制转换的问题上讨论而讨论这个....24点啊........................
谁来写一段:
VB.NET的代码???
楼上的"chester1(学习中) "写的是C#的代码吧?
int i=123;
object obj = i;
i = 456;
问i和obj的值。
==========================================
i = 456 obj = 123
考查装箱、拆箱内容。
对值类型进行装箱时,必须分配并构造一个全新的对象。
好难的24点。不会做
晕
(8-3)%8*3
不到十秒的事,无聊。
============
不到10秒就做错了,太快了
没看见 只用 加减乘除和括号运算
%算加减乘除和括号里面那一个
我就搞不明白为什么不是8+8+3+3?
错了,原来是求24。唉,看A片看多了,头都昏了。
http://superdullwolf.cnzone.net/wolf24.htm
(8*8)/3+3
强贴。第一次见到explicit operator
快点给分:结果是,
(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(这个一般资料都没提到)