后端容易忘记的面试题

String s = new String("xyz");创建了几个String Object?

两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。

请详述在C#中类(class)与结构(struct)的异同?

答:class可以被实例化,属于引用类型,class可以实现接口和单继承其他类,还可以作为基类型,是分配在内存的堆上的

  struct属于值类型,不能作为基类型,但是可以实现接口,是分配在内存的栈上的.

.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

会执行,在return前执行。

扫描二维码关注公众号,回复: 6803408 查看本文章

 

final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此     一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中     不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为     final的方法也同样只能使用,不能重载

finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会     执行,然后控制就会进入 finally 块(如果有的话)。

如何处理几十万条并发数据?

用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来获取.

堆和栈的区别?

    栈:由编译器自动分配、释放。在函数体中定义的变量通常在栈上。

    堆:一般由程序员分配释放。用new、malloc等分配内存函数分配得到的就是在堆上。

大概描述一下ASPNET服务器控件的生命周期

初始化  加载视图状态  处理回发数据  加载  发送回发更改通知  处理回发事件  预呈现  保存状态  呈现  处置  卸载

.&&&的区别。

&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and).

.<%# %>  <%  %> 有什么区别?

  <%# %>表示绑定的数据源

  <% %>是服务器端代码块

请将字符串"I am a student"按单词逆序输出"student a am I"

     string S = "I am a student";

            char[] C = new char[] { ' '};

            string[] n =S.Split(C);

            int length = S.Length;

            for (int i =length-1 ; i >=0; i--)

            {

                Console.Write(n[i]);

                if (i != 0)

                {

                    Console.Write(" ");

                }

            }

CTS、CLS、CLR分别作何解释?

CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。

.什么是强类型系统?

RTTI:类型识别系统。

sleep()和 wait() 有什么区别?

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。

这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级

(b)正在运行的线程因为其它原因而阻塞。

wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

WebService的运行机理(运行过程)
  首先客户端从服务器的到WebService的WSDL,同时在客户端声称一个代理类(Proxy   Class)    这个代理类负责与WebService服务器进行Request   和Response     
  当一个数据(XML格式的)被封装成SOAP格式的数据流发送到服务器端的时候,就会生成一个进程对象并且把接收到这个Request的SOAP包进行解析,然后对事物进行处理,处理结束以后再对这个计算结果进行SOAP包装,然后把这个包作为一个Response发送给客户端的代理类(Proxy   Class),同样地,这个代理类也对这个SOAP包进行解析处理,继而进行后续操作。  
 
下面对.net   Remoting进行概括的阐述:     
.net   Remoting   是在DCOM等基础上发展起来的一种技术,它的主要目的是实现跨平台、跨语言、穿透企业防火墙,这也是他的基本特点,与WebService有所不同的是,它支持HTTP以及TCP信道,而且它不仅能传输XML格式的SOAP包,也可以传输传统意义上的二进制流,这使得它变得效率更高也更加灵活。而且它不依赖于IIS,用户可以自己开发(Development)并部署(Dispose)自己喜欢的宿主服务器,所以从这些方面上来讲WebService其实上是.net   Remoting的一种特例。
 
.net  Remoting的特点是     
他的优点是用户既可以使用TCP信道方式进行二进制流方式通信,也可以使用HTTP信道进行SOAP格式的性通信  ,效率相对WebService要高不少;但是它的缺点也很明显,.net   remoting只能应用于MS 的.net Framework之下。
从性能上来讲Remoting的效率和传统的DCOM、COM+的性能很相近!
 
.数组有没有length()这个方法? String有没有length()这个方法? 
数组没有length()这个方法,有length的属性。String有有length()这个方法。 
 
子类对父类中虚方法的处理有重写( override )和覆盖( new ),请说明它们的区别?
有父类ParentClass和子类ChildClass、以及父类的虚方法VirtualMethod。有如下程序段:
ParentClass pc = new ChildClass();pc.VirtualMethod(...);
如果子类是重写(override)父类的VirtualMethod,则上面的第二行语句将调用子类的该方法
如果子类是覆盖(new)父类的VirtualMethod,则上面的第二行语句将调用父类的该方法
 
基于值类型的变量直接包含值。将一个值类型变量赋给另一个值类型变量时,将复制包含的值。这与引用类型变量的赋值不同,引用类型变量的赋值只复制对对象的引用,而不复制对象本身。所有的值类型均隐式派生自 System.ValueType。与引用类型不同,从值类型不可能派生出新的类型。
 
与引用类型不同,值类型不可能包含 null值。然而,可空类型功能允许将 null 赋给值类型。
每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值

C#中的接口和类有什么异同。

异:不能直接实例化接口。接口不包含方法的实现。接口、类和结构可从多个接口继承。但是C# 只支持单继承:类只能从一个基类继承实现。类定义可在不同的源文件之间进行拆分。

同:接口、类和结构可从多个接口继承。接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。接口可以包含事件、索引器、方法和属性。一个类可以实现多个接口。

 

UDP连接和TCP连接的异同。

TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

 

请解释web.config文件中的重要节点

1、<authentication> 节作用:配置 ASP.NET 身份验证支持(为Windows、Forms、PassPort、None四种)

2、<authorization> 节作用:控制对 URL 资源的客户端访问

3.<compilation>节作用:配置 ASP.NET 使用的所有编译设置。默认的debug属性为“True”.

4.<customErrors>作用:为 ASP.NET 应用程序提供有关自定义错误信息的信息。它不适用于 XML Web services 中发生的错误。

5、<httpRuntime>节作用:配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。 

6、 <pages>作用:标识特定于页的配置设置(如是否启用会话状态、视图状态,是否检测用户的输入等)。

7.  <sessionState>  作用:为当前应用程序配置会话状态设置(如设置是否启用会话状态,会话状态保存位置)。 

8、<trace>  作用:配置 ASP.NET 跟踪服务,主要用来程序测试判断哪里出错。

 

您在什么情况下会用到虚方法?它与接口有什么不同?

当在继承类中想重写某一方法时会用到虚方法;虚方法是类的成员函数,接口相当于抽象类

维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么

尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

猜你喜欢

转载自www.cnblogs.com/jimsu/p/11185003.html