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

时间:2022-12-14 02:03:47

.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[];
//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字)