QQ交流群:110826636

对java面试文章的技术漫谈的C#技术理解

.NET人技术太菜的话,要好好学习啊,所以看到Java届的面试对话文章,不经意想用C#的知识想做一些回应(其实也没有什么了不起的)。

楼下知识文章扩展一览,外加自己接触到的扩展。水太深!

 static void Main(string[] args)
        {
            /*
             对这篇java文章的C#引申扩展(不要以为java很高深,C#的水才是深的不要不要的,颠覆者有几人?)
             * http://www.cnblogs.com/zuoxiaolong/p/life51.html
             */

            //以下就是在C#中的对应和作用

            /*
             java中的LinkedList,ArrayList,HashMap,TreeMap
             */
            /*
             using System.Collections.Generic; 该命名空间
             */
            //http://my.oschina.net/Tsybius2014/blog/227365
            LinkedList<string> list1 = new LinkedList<string>();//双向链表
            //http://www.cnblogs.com/linlf03/archive/2011/12/09/2282574.html
            Dictionary<string,string> list2 = new Dictionary<string,string>();
            //http://www.cnblogs.com/hkncd/archive/2011/05/30/2063124.html
            //源码https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/SortedDictionary.cs
            SortedDictionary<string, string> list3 = new SortedDictionary<string, string>();//内部使用红黑表实现,性能优越
            //扩展延伸 SortedList<string,string> 性能逊于 SortedDictionary 但是各有优缺点
            //扩展说明
            /*
             System.Collections.Concurrent 其实在集合的class有很多,这里提一下多线程并发下的集合。都是在这个命名空间下面
             ConcurrentDictionary
             ConcurrentQueue
             ConcurrentStack
             * 字典,队列,栈都是队友的并发class
             */


            /*
             Java并发包当中的类,它们都有哪些作用,以及它们的实现原理,这些类就是java.concurrent包下面的。
             */
            /*比如面试官可能会先问你,如果想实现所有的线程一起等待某个事件的发生,当某个事件发生时,所有线程一起开始往下执行的话,有什么好的办法吗?*/
            //http://blog.csdn.net/wangqiuyun/article/details/13509225 
            AutoResetEvent[] resets = new AutoResetEvent[5];
            //AutoResetEvent ones = new AutoResetEvent();
            //System.Threading.WaitHandle.WaitOne; //使线程一直等待,直到单个事件变为终止状态;
            System.Threading.WaitHandle.WaitAny(resets); //阻止线程,直到一个或多个指示的事件变为终止状态;
            System.Threading.WaitHandle.WaitAll(resets); //阻止线程,直到所有指示的事件都变为终止状态。
            //Thread.Sleep(1000);


            /*
             IO包和NIO包中的内容。这部分里面NIO会是重点,IO包大部分都会比较熟悉,因此可能会直接略过,直接问你NIO的内容。
             */
            //http://kb.cnblogs.com/page/94729/

            /*
             Java的虚拟机的内容。这部分主要包括三部分,GC、类加载机制,以及内存。
             */
            //GC
            //http://kb.cnblogs.com/page/106720/
            //类加载机制
            //http://www.cnblogs.com/baihmpgy/archive/2013/02/27/CLR_Loader_And_OSGi.html
            //编程上的内存管理细节
            //http://www.cnblogs.com/guodapeng/archive/2008/04/02/1134005.html

            //引申扩展
            //EMIT,CodeDom,OWIN
            //OWIN 是Open Web Server Interface for .NET的首字母缩写,就是开放的web服务接口
            //http://www.cnblogs.com/OceanEyes/p/thinking-in-asp-net-mvc-what-is-owin.html
            //IL的Emit,有大神用来写框架提高性能(https://github.com/qldsrx/OwinFramework 基于OWIN的框架)
            //http://www.csharpwin.com/csharpspace/10973r3457.shtml(基础介绍)
            //System.CodeDom
            //http://www.cnblogs.com/whitewolf/archive/2010/06/19/1760708.html
            
            //如果楼上看不懂就是自己学艺不精,自己菜逼,好好学习,天天向上。

            Console.ReadKey();
        }

自己也太菜,只能写这些了。

.NET技术文章的源码地址:

corefx 框架集 :https://github.com/dotnet/corefx

MVC 框架: https://github.com/aspnet/Mvc

Cache 组件 :https://github.com/aspnet/Caching

想要知道源码自己查,不怕你看,就怕你看不懂。

很多算法一看直接就懵逼了。

还有mono框架:https://github.com/mono/mono

自从14年MS开源开始,mono就开始吸收MS的代码,现在16了,基本吸收了查不到了(可以说已经有了windows上.NETFramework的性能,也许还有过之而无不及),这是社区幸事。

如果是长久混mono社区的(很多.NET逆向高手据说也常混,看雪论坛的大神如是说),发现mono从3开始,就开始发展迅猛,现在的4版本,更是性能加强。以前早年ASP.NET的代码就可以通过Jexus承载于mono,完美运行(只要你确定你写的代码可以跨平台)。

看看Core的里程(地址:https://github.com/dotnet/corefx/milestones),今年夏季就会到来的RTM和即将发布的RC2。以后是全平台的时代,.NET人应该广泛的在各个平台发挥实力!。(终于筹够了博客园的150字)

posted @ 2016-04-22 13:44  FourOne  阅读(700)  评论(0编辑  收藏  举报