代码改变世界

记3月17

2014-03-18 01:16  fat___lin  阅读(237)  评论(2)    收藏  举报

晚上10点左右,刚洗完澡,一个北京打过来的电话,接了后,才发现是阿里北京社招的电话面试。有点突然答得不是很好,而好心的hr也一直在安慰。

强迫症,搞到自己把印象比较深的问题都百度了一下。。。

1、ref与out的区别:

    遇到这题的时候就有点崩了。也奠定了hr安慰我这没关系,基础问题而已的基调。。。其实C#高级编程看过,但已经是1年多前的事了。平时也不会有事没事搞个ref、和out装逼。看到比较合适的答题连接

解: http://onlyice.blog.51cto.com/2469825/496953

 

2、wp里面,从page1跳转到page2,这是后退堆栈里会有多少个页面的记录:

解:后退堆栈调用(Application.Current.RootVisual as PhoneApplicationFrame).BackStack就可以获取到。设置个断点,看一下就有答案了。

     后退堆栈只有一个数据,为page1。

 

3、C#会不会出现内存泄露,什么情况下回出现:

答题的时候比较马虎,只是简单的说,有,如果非托管资源没有及时dispose掉或者没使用using语句时会出现内存泄露。于是便引出了第4个问题。

解:http://zzk.cnblogs.com/s?t=b&w=C%23%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2

4、如果在一个页面里面定义了一个事件,但在页面回收之前没有remove掉事件是否会造成内存泄露:

其实对方这么问答案很明显是会造成内存泄露,但由于自己确实没注意过,于是只能换了另一种方式回答说。没注意过,但平时写都时候都会在loaded事件中进行加载,unloaded事件中进行移除。

 不及时注销事件是很多C#程序导致内存泄露的原因之一.

5、打开一个app,按home建回到首页,再重应用列表里面打开app,这是后应用的登陆流程是怎样:

有wp手机的话,自然会知道。和墓碑机制有关。

 

6、对弱引用的理解,循环引用的过程中,你是否通过弱应用对程序进行解耦:

刚开始对方,只是简单地问对弱引用,于是简单地答到,弱引用在图片加载时应用的比较多,在内存紧张时,会进行回收释放资源。

于是也引来了后面对方问的循环引用。刚开始听不清,对方尝试解释详细点的时候就更懵了。真心跪了。

解:http://www.cnblogs.com/bayonetxxx/archive/2009/06/02/1494728.html

     http://www.cnblogs.com/persistentsnail/archive/2013/04/04/3294845.html

 

哎,修炼果然还是不够。。。