NET 牛人应该知道些什么? (本答复不是标准答案,敬请兄弟们补 牛人应该知道些什么? 充更正,不胜感激)
任何一个使用.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 端口上能够被多少个进程侦听? 可以为多个,多个为端口复用 (多谢蛙蛙池塘的提醒) 看下面代码
端口复用
7) 什么是 GAC?它解决了什么问题 ?它解决了什么问题? Gloal Assembly Cache,全局应用程序集缓存.它解决了几个程序共享某一个 程序集的问题.不必再将那个被共享的程序集拷贝到应用程序目录了,其实这道 理很简单,.net 应用程序在加载的时候,会首先查看全局应用程序集缓存,如 果有就可以直接使用,没有再到应用程序目录进行查找.
中级.NET 开发人员 中级
阐述面向接口,面向对象, 1) 阐述面向接口,面向对象,面向方面编程的区别 面 向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创 建实现,严格的来说,面向接口应该是面向对象中的一部分吧,因为面向对象也 强调的是 依赖倒置原则,