您好,欢迎访问三七文档
发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!C#语言、.NET方面Q1.自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么答:同:都是由用户创建的控件;异:创建性与易用性,用户控件易于创建,但它们在高级方案中使用起来可能不太方便,自定义控件是编译的代码,这使得Web自定义控件更易于使用但更难于创建;Q2.大概描述一下ASP.NET服务器控件的生命周期答:初始化Init事件(OnInit方法)加载视图状态LoadViewState方法处理回发数据LoadPostData方法(如果已实现IPostBackDataHandler)加载Load事件(OnLoad方法)发送回发更改通知RaisePostDataChangedEvent方法(如果已实现IPostBackDataHandler)处理回发事件RaisePostBackEvent方法(如果已实现IPostBackEventHandler)预呈现PreRender事件(OnPreRender方法)保存状态SaveViewState方法呈现Render方法处置Dispose方法卸载UnLoad事件(OnUnLoad方法)Q3.类划分的依据。类粒度问题Q4.事务管理问题答:事务是一组作为一个单元成功或失败的相关任务。在事务处理术语中,事务要么提交,要么中止。若要提交事务,所有参与者都必须保证对数据的任何更改是永久的。不论系统崩溃或是发生其他无法预料的事件,更改都必须是持久的。只要有一个参与者无法做出此保证,整个事务就会失败。事务范围内的所有数据更改将回滚到特定设置点。Q5.谈谈final,finally,finalize的区别。答:final修饰符用于指定类不能扩展或者方法或属性不能重写。Finally是异常处理语句。Finalize是用于让垃圾回收器回收对象所占的内存。Q6.AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?答:匿名的内部类是没有名字的内部类。不能extends其它类,但一个内部类可以作为一个接口,由另一个内部类实现。Q7.StaticNestedClass和InnerClass的不同。答:NestedClass(一般是C++的说法),InnerClass(一般是JAVA的说法)。Java内部类与C++嵌套类昀大的不同就在于是否有指向外部的引用上Q8.&和&&的区别。答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。Q9.HashMap和Hashtable的区别。答:Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现。 第二点不同是,也许昀重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Collections类的静态的synchronizedMap()方法,它创建一个线程安全的Map对象,并把它作为一个封装的对象来返回。这个对象的方法可以让你同步访问潜在的HashMap。这么做的结果就是当你不需要同步时,你不能切断Hashtable中的同步(比如在一个单线程的应用程序中),而且同步增加了很多处理费用。 第三点不同是,只有HashMap可以让你将空值作为一个表的条目的key或value。HashMap中只有一条记录可以是一个空的key,但任意数量的条目可以是空的value。这就是说,如果在表中没有发现搜索键,或者如果发现了搜索键,但它是一个空的值,那么get()将返回null。如果有必要,用containKey()方法来区别这两种情况。 一些资料建议,当需要同步时,用Hashtable,反之用HashMap。但是,因为在需要时,HashMap可以被同步,HashMap的功能比Hashtable的功能更多,而且它不是基于一个陈旧的类的,所以有人认为,在各种情况下,HashMap都优先于Hashtable。 关于Properties 有时侯,你可能想用一个hashtable来映射key的字符串到value的字符串。DOS、Windows和Unix中的环境字符串就有一些例子,如key的字符串PATH被映射到value的字符串C:\WINDOWS;C:\WINDOWS\SYSTEM。Hashtables是表示这些的一个简单的方法,但Java提供了另外一种方法。 Java.util.Properties类是Hashtable的一个子类,设计用于Stringkeys和values。Properties对象的用法同Hashtable的用法相象,但是类增加了两个节省时间的方法,你应该知道。 Store()方法把一个Properties对象的内容以一种可读的形式保存到一个文件中。Load()方法正好相反,用来读取文件,并设定Properties对象来包含keys和values。 注意,因为Properties扩展了Hashtable,你可以用超类的put()方法来添加不是String对象的keys和values。这是不可取的。另外,如果你将store()用于一个不包含String对象的Properties对象,store()将失败。作为put()和get()的替代,你应该用setProperty()和getProperty(),它们用String参数。Q10.Collection和Collections的区别。答:Collection是集合类的上级接口,继承与他的接口主要有Set和List。Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。Q11.什么时候用abstract,什么时候用interface?。答:设计主继承链时通常用抽象类;几个没什么关系的类之间的共性通常用接口实现。Q12.Strings=newString(xyz);创建了几个StringObject?答:两个对象,一个是xyx,一个是指向xyx的引用对象sQ13.Math.round(11.5)等于多少?Math.round(-11.5)等于多少?答:Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11Q14.shorts1=1;s1=s1+1;有什么错?答:s1是short型,s1+1是int型,不能显式转化为short型Q15.sleep()和wait()有什么区别?答:sleep()方法是使线程停止一段时间的方法。在sleep时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)醒来的线程具有更高的优先级(b)正在运行的线程因为其它原因而阻塞。wait()是线程交互时,如果线程对一个同步对象x发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。Q16.数组有没有length()这个方法?String有没有length()这个方法?答:数组没有length()这个方法,有length的属性。String有有length()这个方法。Q17.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?答:方法的重写Overriding和重载Overloading是多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。Q18.Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?答:Set里的元素是不能重复的,那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖,为的是当两个分离的对象的内容和类型相配的话,返回真值。Q19.给我一个你昀常见到的runtimeexception。答:ArithmeticExceptionQ20.error和exception有什么区别?答:error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。exception表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。Q21.List,Set,Map是否继承自Collection接口?答:List,Set是,Map不是Q22.abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?答:都不能Q23.接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承实体类(concreteclass)?答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类(concreteclass),但前提是实体类必须有明确的构造函数。Q24.启动一个线程是用run()还是start()?答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。Q25.构造器Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。Q26.是否可以继承String类?答:String类是final类故不可以继承;Q27.当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?答:不能,一个对象的一个synchronized方法只能由一个线程访问。Q28.try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后?答:会执行,在return前执行。Q29.编程题:用昀有效率的方法算出2乘以8等于几?答:23Q30.两个对象值相同(x.equals(y)==true),但却可有不同的hashcode,这句话对不对?答:不对,有相同的hashcode。看你的对象类型了。Q31.当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?答:是值传递。Java编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。Q32.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?答:switch(expr1)中,expr1是一个整数表达式。因此传递给switch和case语句的参数应该是int、short、char或者byte。long,string都不能作用于swtich。Q33.编程题:写一个Singleton出来。答:
本文标题:net面试题大全
链接地址:https://www.777doc.com/doc-4409391 .html