C#岗位面试经验和注意事项·下

写在前面

上一篇文章给大家讲了很多面试时的加分项,今天就给大家讲一下我面试遇到的问题把,首先你要有一份详细的简历,要把你会的都写上去,让面试官知道你会什么,特别时技术面的时候,面试官会根据你的知识架构来对你进行提问,一般不会问一些出圈的问题。但是如果你把不会的和不熟悉的也写上去了,那你只能是自求多福了。

代码安全

这是一个有项目经验的人都会的一个知识点,如果你没有项目经验,在这里我会告诉你一个大概的知识点,让你在面试的时候能有话说。

代码安全其实涉及到很多方面,比如内存资源管理,比如使用安全队列,比如如何预防死锁等,还有很多我就不一一举例了,我们这里主要就说这三个方面。
1.内存资源管理
这里主要就是C#的垃圾回收机制(GC),但是呢,它只会回收托管的垃圾,而且也不是马上回收,托管的资源在作用域外时,就相当于被当成了垃圾,随时有可能被回收。那么非托管的资源怎么办呢,这里我们就要讲到一个IDisposable接口,实现了这个接口的类就会被当作非托管资源,需要我们使用Dispose()方法来释放占用的资源,如果不手动释放,这些资源就会一直被占用,影响程序运行的速度。

2.使用安全队列,这个就比较简单了,

using System.Collections.Concurrent;

private ConcurrentQueue<object> DemoQueue = new ConcurrentQueue<object>();
DemoQueue.Enqueue();//存
DemoQueue.TryDequeue();//取

3.比较难的应该是这个预防死锁。死锁的四个必要条件一定要知道,分别是,互斥性,不可剥夺,请求与保持,循环请求。具体内容可以百度关键词死锁的四个必要条件。想要预防死锁也很方便只要打破这四个必要条件中的一个就行了,最好是能了解一下简单的排他锁,互斥锁。

设计模式

设计模式也是我们在完成项目的过程中经常会用到的一个知识点,我只用过装饰器模式和单例模式,因为我感觉行为型模式比较难理解,就没用过。装饰器模式是结构型模式,单例模式是创建型模式,都是比较简单常用的设计模式,这里我主要讲解这两个模式,但最好是在掌握一种行为型模式。
1.装饰器模式,主要特点就是能动态的增加装饰者,在构建一些特殊控件的时候可能会用到。具体的实现代码,可以参考菜鸟教程上面的装饰器模式代码。
2单例模式,单例模式更简单,特点就是,一个程序只能有一个实例,并提供一个全局访问点。听上去是不是觉得不可思议,主要是通过私有化构造函数实现的。具体参考同上。
我在使用和了解这两个设计模式的过程中,总结了一个经验。就是,不要被示例代码限制了你自己的思维,设计模式不是几段代码,他是一种思路,示例只是其中一种比较简单的实现方法,只要你能满足它的思路,那你用的就是设计模式。

常用框架

我常用的是MVVM(Model-View-ViewModel)模式,主要用的框架是比较轻量级的MVVMLight。安装和使用都比较简单,这个知识点一般不会是面试的重点。知道你自己用的什么框架,然后同模式下,不同类型的框架知道几个,就能应对了。

线程和进程

线程是系统底层分配给你某个操作的资源和空间,多线程就是多个操作同时进行,但是究其原理,还是单线程的逻辑,只不过充分利用了闲置的资源,主要是让UI线程没有阻碍,增强客户体验。

进程就是一个程序,多进程就是多个程序一起运行,进程也是线程的合集。

反射

反射就是在程序运行过程中动态的获取程序集的信息,其实反射名字听起来很抽象,但是实际应用却比较实际,像GetType()就是最简单的反射,我可以在程序运行的过程中获取某个字段的类型属性。

写在结尾

我上面讲都是比较进阶的知识点,你可以根据自己的情况选择性的掌握,首先要保证基础知识的掌握,再去追求进阶。只要你有能力有技术,我相信找一个好工作不难。别害怕吃苦,这几年网上都在撒毒鸡汤,什么我凭什么要用我自己的休息时间来为公司加班做贡献,就凭你不是一流大学,不是一流专业,没有一流的经验,所以你只能加班,熬出来。当然我也不鼓励傻加班无偿加班被迫加班。我说的加班是对自己的一种要求。如果你是技术大牛,高材生,老板当然就不用加班。如果你什么都不是那就要要求自己努力。最后说一下,上面仅是我自己在面试过程中遇到的或者想到的问题,不代表你在面试中就一定会遇到和我一样的问题,其中的分析讲解也属于我自己的理解,不代表标准答案。与君共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值