欢迎来到天天文库
浏览记录
ID:16129474
大小:34.46 KB
页数:11页
时间:2018-08-08
《.net 初中高级开发人员面试题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、初级.NET开发人员- 任何使用.NET的人都应知道的1.描述线程与进程的区别?进程是系统所有资源分配时候的一个基本单位,拥有一个完整的虚拟空间地址,并不依赖线程而独立存在。进程可以定义程序的一个实例,但它只是占据应用程序所使用的地址空间。为了让进程完成一定的工作,进程必须至少占有一个线程,这个线程即为主线程,默认程序的工作都在这个主线程中完成,可以通过程序创建多个线程,使多个线程可以同时运行(多CPU支持下),这就是多线程技术。线程(Thread)与进程(Process)二者都定义了某种边界,不同的是进程定义的是应用程序与应用程序
2、之间的边界,不同的进程之间不能共享代码和数据空间,而线程定义的是代码执行堆栈和执行上下文的边界。同一进程中的不同线程共享代码和数据空间。2.什么是Windows服务,它的生命周期与标准的EXE程序有什么不同?Windows服务是运行在windows后台指定用户下(默认System)的应用程序,它没有标准的UI界面,相比标准的EXE程序,Windows服务是在服务开始的时候创建,而在服务结束的时候销毁,而且可以设置服务是否与操作系统一起启动,一起关闭。它支持三种方式:1)自动方式2)手动方式3)禁用。自动方式下,Windows服务控制
3、器将指导OS启动后自动启动服务并运行,而手动方式则必须手工启动服务,禁用的情况下服务将不能被启动。另外标准的EXE默认使用的当前登录的用户,而Windows服务则默认使用System用户,这在对系统资源访问的时候特别需要注意。3.Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?这个需要针对硬件平台,公式为单个进程能访问的最大内存量=2的处理器位数次方/2,比如通常情况下,32位处理器下,单个进程所能访问的最大内存量为:232/2=2G。单个进程能访问的最大内存量是最大虚拟
4、内存的1/2,因为要分配给操作系统一半虚拟内存。4.EXE和DLL之间的区间是什么?EXE文件有一个入口点,比如说Main()函数,这样CLR可以由此处执行这个EXE文件,而DLL不包含这样一个入口点所以不是可执行的。DLL文件主要包含一些程序集供其它函数调用。5.什么是强类型,什么是弱类型?哪种更好些?为什么?强类型是在编译的时候就确定类型的数据,在执行时类型不能更改,而弱类型在执行的时候才会确定类型。没有好不好,二者各有好处,强类型安全,因为它事先已经确定好了,而且效率高。一般用于编译型编程语言,如C#、Java与C++等,弱类
5、型相比而言不安全,在运行的时候容易出现错误,但它灵活,多用于解释型编程语言,如Javascript,VB等。6.PID是什么?在做系统的故障排除时如何使用它?PID是进程编号,在系统发现故障的时候,可以根据它寻找故障所发生的具体进程。可通过VisualStudio将故障进程附加到进程中进行调试。7.单个TCP/IP端口上能够被多少个进程侦听?1个8.什么是GAC?它解决了什么问题?GAC是GlobalAssemblyCache,全局程序集缓存的简称。它解决了几个程序共享某一个程序集的问题。不必再将那个被共享的程序集拷贝到应用程序目录
6、了,.NET应用程序在加载的时候,会首先查看全局应用程序集缓存,如果有就可以直接使用,没有再到应用程序目录进行查找。GAC还有一个很重要的作用,所有被放入GAC的程序集都是强名程序集,这样可以保证相同文件名不同版本的程序集被正确的引用,这样解决了COM时代的DLL地狱问题。同时强名还可以防止程序集伪造。中级.NET开发人员1.阐述面向接口、面向对象、面向方面编程的区别面向接口更关注的是概念,它的原则是先定义好行为规范,再根据行为规范创建实现,严格的来说,面向接口应该是面向对象中的一部分,因为面向对象也强调的是本末倒置原则,也就是实现
7、依赖于抽象,而抽象不依赖于具体实现。面向对象是对复杂问题的分解。面向方面的编程是一种新概念,它解决了很多面向对象无法解决的问题,比如面向对象技术只能对业务相关的代码模块化,而无法对和业务无关的代码模块化。而面向方面正是解决这一问题的方案,它的关键思想是“将应用程序中的商业逻辑与对其提供支持的通用服务进行分离”。2.什么是Interface?它与AbstractClass有什么区别?接口(Interface)是用来定义行为规范的,不会有具体实现,而抽象类除定义行为规范外,可以有部分实现,但一个类能实现多个接口,但只能继承一个父类。In
8、terface可以理解为是一种契约。3.什么是反射?程序集包含模块,而模块又包括类型,类型下有成员(这些信息存于元数据中),反射就是在运行时管理程序集,模块,类型的对象,它能够动态的创建类型的实例,设置现有对象的类型或者获取现有对象的
此文档下载收益归作者所有