面试题之四

1.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。

2.数组有没有length()这个方法? String有没有length()这个方法?
答:数组没有length()这个方法,有length的属性。String有有length()这个方法。

3.sleep() 和 wait() 有什么区别?
答:sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正

在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级
(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

4.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
答:short s1 = 1; s1 = s1 + 1;有错,s1是short型,s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。

5.谈谈final, finally, finalize的区别。
答:
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此     一个类不能既被声明

为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中     不被改变。被声明为final的变量必须在声明时

给定初值,而在以后的引用中只能读取,不可修改。被声明为     final的方法也同样只能使用,不能重载
finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会     执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理     工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的     ,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()      方法是在垃圾收集器删除对象之前对这个对象调用的。

6.如何处理几十万条并发数据?
答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方式这种方法并发的时候是不会有重复主键的..取得最大标识要

有一个存储过程来获取.

7.Session有什么重大BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate   server或SQL   Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。

8.ASP。NET与ASP相比,主要有哪些进步?
答:asp解释形,aspx编译型,性能提高,有利于保护源码。

9.产生一个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];

10. 在.net(C# or vb.net)中如何获得当前窗体或控件的句柄,特别是控件本身的句柄(请列举)。
this(C#) Me(vb.net).

11在.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;
}
}

12. 在.net(C# or vb.net)如何启动另一个程序。process

13. 在.net(C# or vb.net)中如何取消一个窗体的关闭
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
}

14. 在.net(C# or vb.net)中,Appplication.Exit 还是 Form.Close有什么不同?
答案:一个是退出整个应用程序,一个是关闭其中一个form

15. 在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);

16. 某一密码仅使用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

17. 62-63=1 等式不成立,请移动一个数字(不可以移动减号和等于号),使得等式成立,如何移动?
答案:62移动成2的6次方
new有几种用法
第一种:new Class();
第二种:覆盖方法
public new XXXX(){}
第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。

18.如何把一个array复制到arrayList里
foreach( object o in array )arrayList.Add(o);

19.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview]
dataset,datatable,dataview , IList

20.概述反射和序列化
反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的

实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性
序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传

输该对象。在另一端,反序列化将从该流重新构造对象。
http://zhidao.baidu.com/question/7371199.html
http://www.host01.com/article/Net/c/0542009590578622.htm

21.概述o/r mapping 的原理
利用反射,配置将类于数据库表映射

22.用sealed修饰的类有什么特点
sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其它类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。

23.详述.NET里class和struct的异同!
class:放在 ? struct放在?
struct值传递
类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有时可以通过聪明地使用结构来增强性能。

24.概述.NET里对 remoting 和 web service 两项技术的理解和实际中的应用。
   
25.下面用C#写一个Singleton:  
  public   class   Singleton    
  {    
  private   static   Singleton   ins;    
  private   Singleton()  
  {   //省略具体的构造函数代码  
  }    
  public   static   Singleton   GetIns()    
  {    
  if   (ins==null)    
  {    
  ins=new   Singleton();    
  return   ins;    
  }    
  else   return   ins;    
  }    
  }    

   
26.Application   Pool是将若干个Application   链接到若干工作进程集合的配置。因为Application   Pool中的Application   被工作进程边界分隔,所以某个Application   Pool中的Application   不会受到其他Application   Pool中Application   所产生的问题的影响。

 

27.数组(顺序表)缺点:需要预先定义大小,这个定义太大了浪费太小了不够用;不方便对中间某个元素做删除操作和在中间插入一个元素

;不利于排列顺序。   优点:存储密度好,查找速度快。  
  链表相反。  
   
28.Remoting在客户端服务器怎么实现   ?  
  (略,说起来太多了。。。)  
   
29.友元函数记得好像是C++里的概念,好像是能够直接访问类的保护数据,避免了频繁调用,节约cpu开销,提高效率,但是同样也破坏了类的封装特性,不符合“面向对象”的要求,所以我也没怎么用过,也没很多研究,大概就是这么回事吧。  
   
30.用标准C实现多态这个以前简单研究过,其实关键在使用struct和函数指针来实现纯虚类,然后用子类(子结构吧。。。。标准C好像没“子类”这个概念。。大家知道怎么回事就行了。。)来实现虚结构,这样就实现了多态性。  
   
     
  11和12,虚(virtual)指定该函数(方法)可以被重载(override)。   抽象abstract,指明该方法并不直接定义具体的实现而交给子类来

实现。另外。。。我几乎没听过“抽象函数”这种提法。。是不是我太孤陋寡闻了?好像习惯上只说“抽象方法”不说“抽象函数”的。。。。“抽象

函数”应该是数学里的概念。  
   
  13.简单的方法没想到。。。记忆中内存泄露是一件很麻烦的事情,很不好找(还好.net不怕。。)。  
   
  英语题   就算了。。。。。。。偶阅读还可以。。跟老外对话是在需要整我的时侯才应该做的事,呵呵  
   
  17.   EXEC   ?   查询分析器   ?     抱歉我没看明白这个题目在说什么。。。。  
   
  18.SQL   Server的两种索引?是不是说聚簇和非聚簇?如果是的话。。。好像所有数据库的索引都这2个,不是只有SQL   Server吧。。。

作用是提高查询速度(选择),缺点是降低修改速度(插入,更新,删除)。如果建的好,降低很小的修改速度却换来查询速度的极大优化。

建的不好也能提高查询速度,只是不明显,而且有可能使修改时间增加很多。     聚簇在这2方面都比非聚簇明显的多,但一个表只允许一个

聚簇(因为数据在硬盘上是根据聚簇来排列的),任何时侯都不要修改聚簇列的值是强烈建议(因为速度会哭死你。。。尤其数据稍微大点)

。不过好在一般情况下你没机会修改这个值,因为默认是把聚簇索引建在主键上了(除非你自己用命令改变它。。。。)  
   
  19.触发器作用是可以在数据库某个位置发生事件(插入,查询等。。)时执行一段代码。  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值