4月博文

以前说过一个月要更新至少一篇博客,4月分没有更新- -,4月分在找工作,3月底辞职了,也说说这几年来的感受吧。


从2012年进入任我行,到今年已经一晃三年了,也正是在这个节点上,我才犹豫,才迷茫,也导致我离职吧,不过可能也主要不是这个原因,我自己是认为三年来没有什么发展,领导未提拔吧。总的感觉来说有一些成绩,但是领导可能关注点不一样。怎么说呢,每个人理解不一样,比如对一个东西做评价一样,有人认为是个宝,有人认为是草,不说这么大的差距,就如同股市价格一样,有人看多有个看空,但总的来说是会有一个价值存在的。如果老板同自己看的差别过大就会导致离职吧。
路漫漫其修远兮啊

这里对任我行公司做人评价吧,任我行确实是我很尊敬的一个公司,她养活着一大帮人,提供了很多就业机会,而且任我行的文化也很不错,发展有些年了,各方面都很完善。也是她这几年给了我机会,在这段时间里我买房,装修,结婚等大事都需要经济支撑,是她给了我这些条件,像公积金,之前几家公司未有过。很感激公司,也很感激领导。这三年我感觉在技术主可能不发前面三年来得快,学得多。但是这三年我感觉更成熟些了,可以说刚毕业出来三年是成长,那么这三年是成熟?未来三年是什么?会有自己的成果吗?所以我选择了出来看看,真心不能安逸在里面,生于优患,死于安乐,所以我一定会出来看看。

4月开始各种找工作,面试了很多家,刚出来也是期望很高,13-14K的开,在成都.net可能确实也拿不到这么多,其实我目标有点转项目管理这块,但可能条件不成熟,面试很多都是开发,我自己也对项目管理这块有实践,也有理论,但是没机会。以前也做过一些项目的方案,带过项目,但是没机会有什么办法?后来也慢慢妥协了,最后在一家创业公司留下来,各方面都是危机,这个也是命运的安排吧,这个看怎么理解,对于技术方面确实会学到一些新的,不说新的,自己以前没有用过的东西吧。走一步算一步吧。大方向不能变,局部肯定会有弯路,不经过九九八十一难也不能取到真经。

下面是我面试过程中遇到的一些题,我不确定答案,还有一些忘了,没有一一列出来。


1.HttpHandler与HttpModule的用处与区别?

HttpHandler是针对一类型的文件,映射给指定的处理程序对请求进行出来。并且映射,与处理都发生在asp.net已经指定好的事件中。
而HttpModule则是针对所有的请求文件,映射给指定的处理程序对请求进行处理,而这些处理,可以发生在请求管线中的任何一个事件中。也就是说你订阅哪个事件,这写处理就发生于那个事件中,
处理过后再执行,你订阅过的事件的下一个事件,当然你也可以终止所有事件直接运行最后一个事件,这就意味这他可以不给HttpHandler机会,很牛的HttpModule。

HttpHandler的使用
在Web.config中注册,并完成对应的处理代码,要求继承IHttpHandler
HttpModule的使用
用法与Handler类似,但是要注意,Module是过滤所有的请求,所以尽量做好类型判断。

2.Socket通信过程

建立套接字
在INET BSD套接字上绑定地址(bind)
在INET BSD套接字上建立连接(connect)
监听INET BSD 套接字(listen)
接受连接请求(accept)

这里主要是大体结构相同,有些说法就没有INET BSD,可能这个更为详细,但是大体结构不变,绑定,连接,监听,接受等

3.当i大于10的时候会不会死锁,为什么?

public void test(int i)
{
        lock (this)
        {
            if (i > 10)
            {
                i--;
                test(i);
             }
        }
}

还有几次遇到这个问题,不知道他们的答案是否也是那个答案,如下
不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)
奇葩答案,我知道网上流传的就是这个版本,我到底是怎么回答呢?我回答的是不会,因为是同一个线程当中。
这里我先不说原因,这个int改为object很容易啊。网上的朋友有做过测试吗?

    class Program
    {
        static void Main(string[] args)
        {
            //A a = new A();
            //a.test(11);

            //Console.WriteLine("没有死锁");

            B b = new B();
            Bi bi = new Bi() { Data = 13 };
            b.test(bi);
            Console.WriteLine("没有死锁");

            Console.Read();
        }
    }

    public class B
    {
        public void test(Bi i)
        {
            lock (this)
            {
                if (i.Data > 10)
                {
                    Console.WriteLine(i.Data);
                    i.Data--;
                    test(i);
                }
            }
        }
    }

    public class Bi
    {
        public int Data = 0;
    }

总结:

  1.4月未更新,补上,离职一些感受

  2.几道面试题,在网上找了找综合一下

  3.最后一个lock问题下一篇来分析(其实以前有一篇文章有关的)

原文地址:https://www.cnblogs.com/gw2010/p/4482491.html