虽然不知为什么贴子被删了,但既然发了题,就还是把答案贴出来。答案都写在问题后面。(不见得是什么标准答案)删除贴子,扣除信誉分分。作者:www_123du_com贴文时间:Jun 26 2007 11:03AM标题:招聘,附上一份题,能自行回答60%便可符合要求(北京)
内容:
1.属性与字段有何异同?
A:只要能透露出属性的实质是方法就差不多了。
(若能说出哪些时候适合用字段,哪些时候适合用属性,由于.NET的内联机制,用属性也不见得性能差些等就更好。但我面试的人中竟有6成不知道属性是什么,对于不知道属性是什么的人,我是决不会考虑的)
2.静态的方法成员和非静态的方法成员有何不同?
A:这个题的语法很明显出了问题,导致很多人刚开始不知如何回答,这是我的问题,我其实想问的是静态方法和非静态方法的区别,静态成员变量和非静态成员变量的区别。
答简单点,就是静态方法仅需要通过类名访问,非静态方法需要通过实例化出来的对象访问。成员变量也是一样。
有时我会继续问静态成员变量和非静态成员变量的生存期,静态成员变量是类第一次访问时创建,一般在程序结束时才会释放,非静态成员变量在对象创建时创建。
我会继续问静态方法和非静态方法,非静态方法是否一个对象在内存中拥有一个单独的方法,当然,这只是个陷阱,方法是元数据,永远只会有一份,只是非静态方法会多一个this而已。
3.什么是定制特性(Attribute),怎么用?
A:定制特性是给类或属性或方法等元数据附加数据。需要通过反射才能取到。
(其实定制特性在项目中一般用得不多,大部分时候甚至用不上。主要是觉得作为一种知识,或者说作为.NET的一种技术,如果你不知道怎么用,那么你在碰到刚好适用这种技术的场景时,你又怎么能做出好的选择呢?应聘者有7成不知道Attribute)
4.委托怎么声明,怎么用?事件怎么声明,怎么用?
A:delegate void Dele1(object param1);
....(这是比较死的东西,查一下就知道了)
如果应聘者会用这两者,我会继续问委托与事件有什么联系。其实事件就是把委托封装了一层,对声明事件的类的外面隐藏了所有方法,除了暴露出经过重载的+=和-=两个方法。
5.值类型与引用类型有何异同?值传递与引用传递有何异同?
A:值类型分配在栈中,引用类型分配在堆中。
....(都是死概念,可以到处查得到标准答案)
我会问将一个引用类型用普通的方式(即未添加仍然关键字)作为参数时,会发生值传递还是引用传递。当然,虽然传的是引用,但就参数传递方式来讲,仍是值传递。
6.如果我要自定义一个控件,应该从哪个类继承(winform)?
A:一般从Control或UserControl继承。(只是想知道应聘者是否了解控件概念)
7.try,catch,finally,using这几个关键字的作用是什么?
A:都有死答案。就不说了。
我会继续问一下关于finally,即:try,catch块后写上finally和不写finally有区别吗?这时候,有一部分人会想不起来try,catch块后面不写finally会不会执行,其实正常情况下肯定仍然执行。finally主要体现在try,catch中有return或者catch中再次抛出异常时仍然会执行。
8.多线程同步有哪些方式?
A:我其实只希望应聘者能说出lock。关于信号量互斥体等不了解也没关系。但面试的人9成没做过多线程。
9.反射能实现什么作用?
A:动态获得元数据信息。通过元数据进行一些操作。但不可以改变元数据。
10.以下程序将输出什么?
class Test
{
int a;
public Test(int a)
{
this.a = a;
}
static void Main(string[] args)
{
Test t1 = new Test(5);
Test t2 = new Test(4);
t2.a++;
bool bl = t1.Equals(t2);
System.Collections.Hashtable ht = new System.Collections.Hashtable();
ht.Add(t1, "5 ");
ht.Add(t2, "4 ");
object obj = ht[new Test(5)];
//输出:false,因为未重写Equals,而object的Equals比较引用
System.Console.Write(bl);
//什么都不输出。因为即未重写GetHashCode也未重写Equals
System.Console.Write(obj);
System.Console.ReadLine();
}
}
_______________________________________________________
能自行答出60%者,可将此题的答案与个人简历(没有个人简历也可,简单说下大致情况)发至:[email protected]
可在来信中提出待遇要求,这里就不方便说,因为这得根据能力而定.
内容:
1.属性与字段有何异同?
A:只要能透露出属性的实质是方法就差不多了。
(若能说出哪些时候适合用字段,哪些时候适合用属性,由于.NET的内联机制,用属性也不见得性能差些等就更好。但我面试的人中竟有6成不知道属性是什么,对于不知道属性是什么的人,我是决不会考虑的)
2.静态的方法成员和非静态的方法成员有何不同?
A:这个题的语法很明显出了问题,导致很多人刚开始不知如何回答,这是我的问题,我其实想问的是静态方法和非静态方法的区别,静态成员变量和非静态成员变量的区别。
答简单点,就是静态方法仅需要通过类名访问,非静态方法需要通过实例化出来的对象访问。成员变量也是一样。
有时我会继续问静态成员变量和非静态成员变量的生存期,静态成员变量是类第一次访问时创建,一般在程序结束时才会释放,非静态成员变量在对象创建时创建。
我会继续问静态方法和非静态方法,非静态方法是否一个对象在内存中拥有一个单独的方法,当然,这只是个陷阱,方法是元数据,永远只会有一份,只是非静态方法会多一个this而已。
3.什么是定制特性(Attribute),怎么用?
A:定制特性是给类或属性或方法等元数据附加数据。需要通过反射才能取到。
(其实定制特性在项目中一般用得不多,大部分时候甚至用不上。主要是觉得作为一种知识,或者说作为.NET的一种技术,如果你不知道怎么用,那么你在碰到刚好适用这种技术的场景时,你又怎么能做出好的选择呢?应聘者有7成不知道Attribute)
4.委托怎么声明,怎么用?事件怎么声明,怎么用?
A:delegate void Dele1(object param1);
....(这是比较死的东西,查一下就知道了)
如果应聘者会用这两者,我会继续问委托与事件有什么联系。其实事件就是把委托封装了一层,对声明事件的类的外面隐藏了所有方法,除了暴露出经过重载的+=和-=两个方法。
5.值类型与引用类型有何异同?值传递与引用传递有何异同?
A:值类型分配在栈中,引用类型分配在堆中。
....(都是死概念,可以到处查得到标准答案)
我会问将一个引用类型用普通的方式(即未添加仍然关键字)作为参数时,会发生值传递还是引用传递。当然,虽然传的是引用,但就参数传递方式来讲,仍是值传递。
6.如果我要自定义一个控件,应该从哪个类继承(winform)?
A:一般从Control或UserControl继承。(只是想知道应聘者是否了解控件概念)
7.try,catch,finally,using这几个关键字的作用是什么?
A:都有死答案。就不说了。
我会继续问一下关于finally,即:try,catch块后写上finally和不写finally有区别吗?这时候,有一部分人会想不起来try,catch块后面不写finally会不会执行,其实正常情况下肯定仍然执行。finally主要体现在try,catch中有return或者catch中再次抛出异常时仍然会执行。
8.多线程同步有哪些方式?
A:我其实只希望应聘者能说出lock。关于信号量互斥体等不了解也没关系。但面试的人9成没做过多线程。
9.反射能实现什么作用?
A:动态获得元数据信息。通过元数据进行一些操作。但不可以改变元数据。
10.以下程序将输出什么?
class Test
{
int a;
public Test(int a)
{
this.a = a;
}
static void Main(string[] args)
{
Test t1 = new Test(5);
Test t2 = new Test(4);
t2.a++;
bool bl = t1.Equals(t2);
System.Collections.Hashtable ht = new System.Collections.Hashtable();
ht.Add(t1, "5 ");
ht.Add(t2, "4 ");
object obj = ht[new Test(5)];
//输出:false,因为未重写Equals,而object的Equals比较引用
System.Console.Write(bl);
//什么都不输出。因为即未重写GetHashCode也未重写Equals
System.Console.Write(obj);
System.Console.ReadLine();
}
}
_______________________________________________________
能自行答出60%者,可将此题的答案与个人简历(没有个人简历也可,简单说下大致情况)发至:[email protected]
可在来信中提出待遇要求,这里就不方便说,因为这得根据能力而定.
----------------------------------------------------------------
我承认,我因为要应付笔试,所以复习了.这些题能答较好.
能力,我觉得就是一个悟性的问题.
还有一个就是接触没接触到,我一直希望可以用到某些知识,那时候学习是最快的
比如做毕业设计的时候觉得自己进步非常快.而慢慢的我总觉得自学的速度变慢了.效率低下
可能因为没钞票挣,可能因为我不知道该往哪方面努力.总之遇到了瓶颈.
我觉得那个Effective C#那本书真的很好阿....感谢 愚翁
值类型与引用类型?http://dev.csdn.net/author/Knight94/24805bddd1b942da9266ad79192d1f49.html
看完这个,绝对可以答很好
http://dev.csdn.net/author/Knight94/fa04199d23344291ba0d406128e6b665.html
虽然都是概念的东西,我觉得很有意思.当你开车的时候,你知道你是怎么跑起来的,那是多么有意思.
:-)小公司+机遇,便成了“骨干”,呵呵。一般有两种结果:
1.公司倒了,骨干便干了(干净的干)。
2.公司成长,骨干便可以腾飞,或者来了更骨干的骨干,那么原本的所谓骨干便可好好学习,争做日后的真正骨干
----将希望埋在心里 露出来的 仅仅是微笑to Jinglecat(晓风残月 >> 问题需简洁,错误要详细):
多谢,让我不安的内心感受到了一份认同。to Avoid(千金散尽还复来):
我也确实一直在迷惑,如何通过面试来了解一个人的真正能力呢?
我现在的做法是:我无法通过面试了解他的能力,于是我尝试了解他的态度,我仅希望他是一个对技术抱有崇敬的人。
我也真的很想通过面试了解一个人的真正能力,并且通过自己曾经的多次面试,一直在思考,我该如何发现他们的能力。至今也还没得到一个令自己满意的方式。
但有几点我觉得是很好的:
1.在你觉得你了解他之后,你不妨问问他:“你觉得我还有对你哪些地方不了解的吗?”在最后给他一个挖掘自己能力的机会。(这是我有次面试有个小伙子对我说的,我当时很欣赏他能想到并做到这一点)
2.试图了解他对他最熟悉的技术的掌握程度。比如我们项目中其实不牵涉数据库,但由于很多人以前的项目都是面向数据库编程,于是我会问他们一些数据库问题,当然既然是他们的强项,我会稍微深入一点,比如,ADO.NET中的Adapter默认如何处理并发等。(其实都是我曾经面试是别人面试我的题,但我觉得很有代表意义)to yan53125(小王):
呵,我最喜欢的两本.NET书就是《.NET框架程序设计》和《Effective C#》,都是李建忠大哥翻译的:-)to hm7921936():
不好意思,白天没在,我会回的:)另外,非常谢谢大家的关注和肯定,也非常谢谢大家的意见。
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
优惠接单开发,组件控件定制开发,成品源代码批发
联系方式:Q64180940 全天在线
==================================================================
同意这种观点
同意这种观点
很中肯的说.........
其实这些题目我也从没让面试者笔试过一次,每次都是我拿着这个题直接和他聊的。to syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*):
呵,我本来就没太多自信,压根没有招一个牛人的准备,可能这和我有关。招聘过程中我也是诚惶诚恐。to hdt(倦怠):
方便的话指出来我的错误吧,面对自己的错误虽然很残酷,但不知道自己的错误更悲哀。
20几道题下来,凭借着记忆答完一堆堆的概念.感觉60,70的percent肯定没问题,结果还是没等来消息呵呵(同考的多数都是刚毕业的学生)
所以觉得考些概念,可能不是很适合招聘实用型人材.虽然LZ题目的很多概念在我们做.net中其实经常用到,但perfect的答出书面标准,可能大多数人.....可能我还缺那么点记忆力.
应用技术和理解技术是两个方面,虽然两者有关联。
如果你让大学里面的老师来告诉你理论很容易,但是让他来应用就是两个方面了很多时候在面试时不能拿你的感悟和理解来要求别人,否则就是找不到人的。很多基础的题确实能考到很多人。就好比你让脱离开IDE,又有几个人能完成一个带表格的Html文件
哈哈,是啊,我当时之前也发了个招聘贴,由于仅招聘没放题,就放在非技区,没什么问题。这次放了几个题,于是放在技术区,被想到过了那么久之后被删了。to lovingkiss(天行健:沧浪翻涌剑留影,空留玉箫无人聆):
谢谢:-)
你这么看我也就比较心安一些了。
____________________________________________________________________那么这个贴子就当给大家一个讨论的平台吧。我也仅充当讨论者中的一个。
-->>>
不错 楼主是哪里的啊?北京?
是的,在北京。to viena() 维也纳(windows7):
哈哈,什么时候四星了?恭喜恭喜!
-------------------------------.NET也有内联机制?
在哪里有关于这方面的信息,楼主帮忙指一下看看.
public class yourclass
{}void test( yourclass parm )
{}
==
C++
class yourclass
{};void test( yourclass& parm )
我觉得招聘,应该是平等的——彼此了解的一个缘分,而不应该是面试者对应聘者的考核,笔试这玩意,就是老鸟如果不复习直接拿来做,大多白扯——知道怎么回事,未必能写得那么完善。而写得很完善的,大多又都是照本宣科,实际上根本不理解,更不能活学活用。再者凭什么你考核我啊??——我还要知道我要面对的“技术领导”是否和我对盘呢,我的权利哪里去啦??面试最终目标不是难为人啊——而是追求彼此选择的一个结果,并不单纯是你选择我,给我机会的。入门者的应聘——用笔试还是可以考核出来一定的东西,但是有过几年经验的程序员,我更推荐交流,个人感觉,最好的招聘——很多年纪大点的招聘者都是这样做的,类似于促膝谈心样式的。如果一个技术负责人没有能力在一定时间内于交流中获取足够的信息,那只能说这个负责人语言交流能力不足,敏感度不够,呵呵~~个人建议,保留。
==============================================说的很好``
难得的热心人哟
public class yourclass
{}void test( yourclass parm )
{}
==
C++
class yourclass
{};void test( yourclass& parm )----------------------------------
这两个是不等价的,一个是值传递,但传的内容是引用类型。一个是引用传递,但是传的内容是值类型。
考虑一下函数实现为parm = new yourclass()的情况。
5.值类型与引用类型有何异同?值传递与引用传递有何异同?
A:值类型分配在栈中,引用类型分配在堆中。
....(都是死概念,可以到处查得到标准答案)
我会问将一个引用类型用普通的方式(即未添加仍然关键字)作为参数时,会发生值传递还是引用传递。当然,虽然传的是引用,但就参数传递方式来讲,仍是值传递。
===================================
???除了显式添加ref或out关键字外的传统都是值传递。
如果将一个引用类型不添加ref或out关键字作为参数传递,那么是值传递,但这个值传递的"值"是针对的引用本身(即C++里的指针),所以传过去后仍引用同一个对象(用C++讲仍指向同一个对象)。但若在函数内用赋值操作符改变它,使其指向另外一个对象,那么函数内外则没了联系。
添加了ref或out则不然。
如果将一个引用类型不添加ref或out关键字作为参数传递,那么是值传递,但这个值传递的"值"是针对的引用本身(即C++里的指针),所以传过去后仍引用同一个对象(用C++讲仍指向同一个对象)。但若在函数内用赋值操作符改变它,使其指向另外一个对象,那么函数内外则没了联系。
添加了ref或out则不然。
==
这样解释还差不多,楼主原话容易使人引起误解
但是值类型并不一定是在栈中,要视其具体情况而定
。NET里定义的全局变量,那么是不是所有访问的人访问的都是一样的呢?全局变量的有效范围到底是什么?
谢回答。
static
application
session
cookie
cache
??
问个问题都这么难
全局变量,在GLOBAL里定义的。
只是为了记录他的在线时长,可是我在使用中发现所有的用户都会不定时地得到这个值。不定时
我想问的是,全局是指整个应用吗?包括所有用户?
为什么不是单个用户呢?
多谢:-)to hbxtlhx(平民百姓-自已动手,丰衣足食):
.NET的内联在《Effective C#》对属性与字段的那条建议上有叙述。
倦怠
等 级:
发表于:2007-08-13 10:21:1839楼 得分:0
9.反射能实现什么作用?
A:动态获得元数据信息。通过元数据进行一些操作。但不可以改变元数据。
===
反射发出呢??
非常感谢,我居然一直不知道这个技术。