学习.net应该知道的知识

来源:北大青鸟飞迅校区|发布时间:2013-05-04 11:15:28

  何一个使用.NET的人都应该知道的一些知识:

  1) 描述线程与进程的区别?

  线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。而同一进程中的不同线程共享代码和数据空间。用一个比喻来说,如果一个家庭代表一个进程,在家庭内部,各个成员就是线程,家庭中的每个成员都有义务对家庭的财富进行积累,同时也有权利对家庭财富进行消费,当面对一个任务的时候,家庭也可以派出几个成员来协同完成,而家庭之外的人则没有办法直接消费不属于自己家庭的财产。

  2) 什么是Windows服务,它的生命周期与标准的EXE程序有什么不同

  Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面,想比标准的EXE程序,Windows服务是在服务开始的时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起启动,一起关闭。它支持三种方式:1)自动方式 2)手动方式 3)禁用 。自动方式的时候,windows服务将在OS启动后自动启动运行,而手动方式则必须手工启动服务,禁用的情况下服务将不能被启动。另外标准的EXE默认使用的当前登录的用户,而windows服务则默认使用System用户,这在对系统资源访问的时候特别需要注意。

  3) Windows单个进程所能访问的最大之一内存量是多少?它与系统的最大之一虚拟内存一样吗?这对于系统设计有什么影响?

  这个需要针对硬件平台,公式为单个进程能访问的最大之一内存量=2的处理器位数次方/2,比如通常情况下,32位处理器下,单个进程所能访问的最大之一内存量为:232 /2 = 2G 。单个进程能访问的最大之一内存量是最大之一虚拟内存的1/2,因为要分配给操作系统一半虚拟内存。

  4) 什么是强类型,什么是弱类型?哪种更好些?为什么?

  强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如c++,java,c#,pascal等,弱类型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如javascript,vb等

  5) PID是什么?在做系统的故障排除时如何使用它?

  PID是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体进程,并且可通过visual studio.net等ide将故障进程附加到进程中进行调试(debug)

  6) 单个TCP/IP端口上能够被多少个进程侦听?

  可以为多个,多个为端口复用看下面代码

  端口复用 Socket socket1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); Socket socket2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket1.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"),8235)); socket1.Listen(10); socket2.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); socket2.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8235)); socket2.Listen(10); Console.Read();

上一篇:Java程序员学习六大要点
下一篇:中级.NET开发人员学习指南

热门话题

招生热线: 4008-0731-86 / 0731-82186801

学校地址: 长沙市天心区团结路6号

Copyright © 2006 | 湖南大计信息科技有限公司 版权所有

湘ICP备14017520号-3

关注我们
在线咨询
嘿,我来帮您!