大型软件公司.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 == b false( 因為 reference type ,非同一個物件了 ) //a == x compile err( a x 無繼承關係無法 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 操作這個 class object 時會錯。
l           String Date File 8 wrapper 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/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程序员面试题 看你能否通过技术关?
 


面试题

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   评论   文字大小:
<script type=text/javascript> </script>
 
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]
        static void Main()
        {
            // 防止程序多次运行
            if (!OneInstance.IsFirst("GetPayInfo"))
            {
                MessageBox.Show (" 警告:程序正在运行中! 请不要重复打开程序!可在右下角系统栏找到!","程序错误提示:",MessageBoxButtons.OK,MessageBoxIcon.Stop);
                return ;
            }
            Application.Run( new Form1());
        }
        // *******************  防止程序多次执行 **************************
        public abstract class OneInstance
        {
            ///<summary>
            /// 判断程序是否正在运行
            ///</summary>
            ///<param name="appId"> 程序名称 </param>
            ///<returns> 如果程序是第一次运行返回True,否则返回False </returns>
            public static bool 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)]
            private static extern IntPtr OpenMutex(
                uint dwDesiredAccess,  // access
                int bInheritHandle,     // inheritance option
                string lpName          // object name
                );
 
            [DllImport("Kernel32.dll",CharSet=CharSet.Auto)]
            private static extern 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   中有两个字段   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 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
 
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值