2020年最新 C# .net 面试题,月薪20K+中高级/架构师必看(六)
126、详诉下内存中的堆和栈。
栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;局部值类型变量、值类型参数等都在栈内存中。
堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小。
127、用SQL进行行转列。
https://www.cnblogs.com/zoro-zero/p/11334785.html
128、Ajax调用的时候,get、post有什么区别?
Get和Post都是向服务器发送的一种请求,只是发送机制不同。
1. GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器。当然在Ajax请求中,这种区别对用户是不可见的
2、GEt传输数据容量小,不安全,post传输数据内容大,更加安全;
129、返回类型 ActionrResult 的方法可以重载吗? 返回的类型有哪几种?
https://www.cnblogs.com/junshijie/p/6306802.html
130、.net 怎么实现事务?
https://www.cnblogs.com/kedarui/p/3621180.html
131、数据库优化方面有什么了解?
https://www.cnblogs.com/zoro-zero/p/13497938.html
132、描述线程与进程的区别?
https://www.cnblogs.com/fantasylu/archive/2008/05/29/1209790.html
133、什么是Windows服务,它的生命周期与标准的EXE程序有什么不同
https://blog.csdn.net/chaojitegou/article/details/7286019
134、什么是强类型,什么是弱类型?哪种更好些?为什么?
https://www.cnblogs.com/zoro-zero/p/13497917.html
135、PID是什么?在做系统的故障排除时如何使用它?
136、单个TCP/IP端口上能够被多少个进程侦听?
可能只有一个。如果你需要创建另一个TCP/IP监听,你必须建立另一个不同的端口
137、什么是GAC?它解决了什么问题?
https://blog.csdn.net/ojlovecd/article/details/2412886
138、阐述面向接口、面向对象、面向方面编程的区别
面向接口编程:通过接口规约对象的属性和方法,是面向对象一部分。
面向对象编程:通过封装、继承、多态等更加有效的组织程序。
面向方面编程:把业务的主逻辑和次逻辑分开的一种思想
139、使用ASMX的XML Web服务与使用SOAP的.NET Remoting的区别?
WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。
remoting是.net中用来跨越machine, process, appdomain 进行方法调用的技术,对于三成结构的程序,就可以使用remoting技术来构建.它是分布应用的基础技术.相当于以前的DCOM WebService是一种构建应用程序的普通模型,并能在所有支持internet网通讯的操作系统上实施。WebService令基于组件的开发和web的结合达到最佳,基于组件的对象模型
net Remoting 的工作原理是服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
140、类型系统是由XMLSchema表示的吗?CLS是XMLSchema表示的吗?
CLS是公共语言规范(Common Language Specification),它是任何.net 语言(C#,VB.net等)使用的一套数据类型。
XmlSchema是一个特定的XML文档必须满足的一套标准;
这个问题比较模糊,不好解答,CLS的类型系统应该不是XMLSchema表示的,因为编程的时候还支持自定义类型。至于自定义类型的具体原理我也说不清楚了。
141、调用Assembly.Load算静态引用还是动态引用?
动态引用
142、何时使用Assembly.LoadFrom?何时使用Assembly.LoadFile?
assembly.loadform,全部加载,包括依赖
assembly.loadfile,只加载所需文件,有可能出错
143、什么叫Assembly Qualified Name?它是一个文件名吗?它有什么不同?
它不是一个文件名,相比文件名,Assembly Qualified Name(程序集限定名称),更能确定一个程序集,它包含文件名,但同时包含版本,公钥,和区域。
因为同样一个名称的文件可能有不同的版本和区域,此时单独靠文件名称,可能会造成不能确定程序集的正确性。
144、Assembly.Load("foo.dll"); 这句话是否正确?
错误, assenbly.load("foo"); assembly.loadform("foo.dll");
145、做强签名的assembly与不做强签名的assembly有什么不同?
强签名的程序集可以做成com,而不做强签名的就不行,同样强签名程序集可以安装到GAC中,而不做强签名的却不能。
146、DateTime是否可以为null?
可以
147、什么叫JIT?什么是NGEN?它们分别有什么限制和好处?
Just In Time 及时编译,它是在程序第一次运行的时候才进行编译,而NGEN是所谓的pre-jit,就是说在运行前事先就将生成程序集的本机镜像,并保存到全局缓存中,适用NGEN可以提高程序集的加载和执行速度,因为它可以从本机映像中还原数代码和数据结构,而不必像jit那样动态生成它们。感觉和缓存的道理大同小异。
148、in-proc和out-of-proc的区别?.NET里的哪一项技术能够实现out-of-proc通讯?
in-proc是进程内,进程内能共享代码和数据块,out-of-proc是进程外,进程外的互操作需要用进程间通讯来实现。
.NET里的哪一项技术能够实现out-of-proc通讯?
.NET Remoting技术或者WCF技术;
149、对比OOP和SOA,它们的目的分别是什么?
https://blog.csdn.net/weixin_44002272/article/details/98597714
150、XmlSerializer是如何工作的?使用这个类的进程需要什么ACL权限?
XmlSerializer是将对象的属性和字段进行序列化和反序列化的,序列化成为XML数据,反序列化再将xml转换成对象。应该至少需要ACL权限中的读权限;
ACL(Access Control List) 访问控制表,ACL是存在于计算机中的一张表,它使操作系统明白每个用户对特定系统对象,例如文件目录或单个文件的存取权限。
每个对象拥有一个在访问控制表中定义的安全属性。这张表对于每个系统用户有拥有一个访问权限。
最一般的访问权限包括读文件(包括所有目录中的文件),写一个或多个文件和执行一个文件(如果它是一个可执行文件或者是程序的时候)。
Windows NT、Novell公司的Netware,Digital公司的OpenVMS和基于UNIX系统是使用这种访问控制表的系统。而此表的实现在各个系统中却不一样。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix