版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.NET初级+Spring高频面试题(详细实战答案)第一部分:.NET初级面试题(适合应届生、0-2年经验)1、讲讲C#中值类型和引用类型的区别?这是C#最基础的核心知识点,日常开发经常用到,两者最大的区别是内存存储方式和赋值逻辑不同。值类型:数据直接存储在栈内存中,赋值的时候是完整拷贝值,两个变量相互独立,修改一个不会影响另一个。常见的值类型有int、double、bool、char、struct、枚举等。引用类型:数据存储在堆内存中,栈里只存对象的内存地址。赋值的时候是拷贝地址,多个变量指向同一个堆内存对象,修改其中一个,所有指向该地址的变量都会跟着变化。常见引用类型有string、class、数组、集合、自定义类等。补充:栈内存自动释放,速度快;堆内存需要GC垃圾回收机制回收,速度相对慢一点。2、string和StringBuilder的区别?什么时候用哪个?string是不可变字符串,一旦赋值就不能修改。每次对string做拼接、替换操作,都会生成一个全新的字符串对象,旧对象会等待GC回收。如果循环中频繁拼接字符串,会产生大量临时对象,造成内存浪费、程序卡顿。StringBuilder是可变字符串,底层维护一个字符缓冲区,修改、拼接字符串时不会生成新对象,直接在原有缓冲区修改,性能很高。使用场景:单次少量字符串操作用string;循环、批量、大量字符串拼接/修改场景必须用StringBuilder。3、ArrayList和List<T>的区别?ArrayList是早期.NET版本的非泛型集合,所有存储的数据都会被装箱成object类型。存取数据需要频繁装箱、拆箱,性能差,而且不限制数据类型,容易存错数据,编译时不会报错,运行时才会出错,安全性低。List<T>是泛型集合,编译时就确定数据类型,全程不需要装箱拆箱,执行效率更高。同时有类型校验,类型不匹配时编译直接报错,能提前规避问题,开发更安全。现在项目开发中基本不再使用ArrayList,统一使用List<T>。4、const和readonly的区别?const常量:编译时常量,必须在声明时直接赋值,后续无法修改。值会在编译时嵌入代码中,属于静态常量,不能用在对象实例中,只能通过类名访问。readonly只读字段:运行时常量,可以在声明时赋值,也可以在构造函数中赋值,构造执行完毕后就不能再修改。属于实例字段,支持对象级别使用,灵活性比const更高。简单总结:固定不变的全局常量用const;需要根据构造初始化、动态赋值的只读字段用readonly。5、什么是装箱和拆箱?装箱:把值类型转换为引用类型的过程,比如int转object。本质是在堆内存中开辟空间,将栈中的值拷贝到堆中,返回堆地址。拆箱:把引用类型转回值类型的过程,需要强制类型转换,从堆内存中取出数据拷贝到栈内存。装箱拆箱会产生性能开销,日常开发中要尽量避免,比如优先使用泛型集合、避免频繁值类型转object。6、ASP.NETMVC和ASP.NETCoreMVC的核心区别?1、跨平台:传统ASP.NETMVC只能运行在Windows系统、IIS服务器上;CoreMVC跨平台,支持Windows、Linux、Mac,可部署在Nginx、Apache、Docker等环境。2、架构轻量化:Core彻底重构,移除了老旧冗余组件,内置依赖注入、中间件、路由机制,启动更快、占用资源更少。3、部署方式:传统MVC依赖完整.NETFramework框架;Core支持独立部署,无需服务器安装框架,直接运行。4、模块化:Core采用中间件管道模式,需要什么功能就启用什么中间件,自由度更高。7、MVC模式的原理和各组件作用?MVC是分层开发模式,核心是职责分离,拆分视图、业务、数据逻辑,方便维护和迭代。Model(模型):负责数据和业务逻辑,包括实体类、数据访问、业务处理,不参与页面展示。View(视图):只负责页面数据展示,接收用户页面操作,不处理业务逻辑。Controller(控制器):核心调度层,接收用户请求,调用Model处理数据,最后返回对应视图或数据结果。8、.NET中的GC垃圾回收机制简单说一下?GC是.NET自动内存管理机制,专门回收堆内存中不再被使用的对象,释放内存空间,避免内存泄漏,开发者无需手动释放内存。GC会将堆内存分为0、1、2三代,优先回收新生代(0代)短期对象,回收速度快;长期存活的对象会晋升到老年代,减少重复扫描,提升回收效率。日常开发中,非托管资源(文件流、数据库连接、网络请求)GC无法自动回收,需要手动using释放或Dispose关闭。第二部分:Spring核心面试题(初级必备、高频基础)1、简单说说Spring的核心作用?Spring是Java的轻量级开源框架,核心目的是解耦,简化企业级开发,规避传统Java开发中对象创建、依赖管理繁琐、代码耦合度高的问题。最核心的两大功能是IOC容器管理对象、AOP实现切面增强,同时整合了事务管理、异常处理、资源管理等通用功能,让开发者专注业务逻辑开发。2、什么是IOC?IOC的实现原理?IOC就是控制反转,是Spring的核心思想。传统开发中,开发者主动new对象、管理对象依赖,控制权在开发者手中;IOC将对象的创建、初始化、销毁、依赖注入的控制权,全部交给Spring容器管理,实现组件解耦。核心原理:Spring启动时扫描项目注解或配置文件,读取Bean定义信息,通过反射机制创建对象,提前存入IOC容器,程序使用时直接从容器获取对象,无需手动创建。3、什么是DI?DI和IOC的关系?DI是依赖注入,是IOC的具体实现方式。简单说就是容器自动给Bean注入所需的依赖对象,无需开发者手动赋值。两者关系:IOC是设计思想、核心理念,DI是实现这种思想的具体手段。没有依赖注入,控制反转就无法落地。常用注入方式:构造器注入(官方推荐)、setter方法注入、字段注解注入。4、SpringBean的生命周期?完整流程简单分为7步,初级开发掌握核心流程即可:1、Spring启动扫描,加载Bean的配置信息;2、通过反射实例化Bean对象;3、自动完成依赖注入,给对象属性赋值;4、执行Bean的前置初始化处理;5、执行初始化方法(init-method、@PostConstruct);6、Bean完成初始化,存入IOC容器,对外提供使用;7、容器关闭时,执行销毁方法(destroy-method、@PreDestroy)。5、SpringBean的作用域有哪些?默认是什么?Spring一共提供多种作用域,初级开发掌握最常用的4种即可:1、singleton(单例):默认作用域,整个IOC容器中只创建一个Bean实例,全局共享,性能最高。2、prototype(多例):每次从容器获取Bean,都会创建一个全新对象。3、request:每次HTTP请求创建一个新Bean,请求结束销毁。4、session:每个用户会话对应一个Bean,会话失效销毁。默认作用域是singleton单例。6、什么是AOP?应用场景有哪些?AOP是面向切面编程,核心是在不修改原有业务代码的前提下,对方法进行增强,抽取通用公共逻辑,实现代码解耦。简单理解:把日志、事务、权限校验、性能统计这类通用功能抽离成切面,在目标方法执行前后自动触发,不用每个业务方法重复写代码。常用场景:统一日志记录、事务控制、接口权限校验、方法耗时统计、请求参数校验、缓存处理。7、AOP的核心术语有哪些?连接点:可以被切面拦截的所有方法,就是程序中所有可增强的方法。切入点:从所有连接点中,筛选出来需要实际增强的方法。通知/增强:切面要执行的通用逻辑,分为前置通知、后置通知、异常通知、环绕通知。切面:切入点+通知的结合体,包含增强规则和增强逻辑的类。织入:将切面代码嵌入到目标方法的过程。8、Spring事务的传播特性和隔离级别(初级重点)事务传播特性(常用3个):1、REQUIRED(默认):当前有事务就加入,没有就新建事务;2、SUPPORTS:当前有事务就加入,没有就非事务运行;3、REQUIRES_NEW:无论当前是否有事务,都新建一个独立事务。事务隔离级别:解决脏读、不可重复读、幻读问题,默认跟随数据库隔离级别,日常开发基本不用手动修改。9、@Component、@Service、@Controller、@Repository区别?底层功能完全一致,都是将类交给Spring管理、注册为Bean,只是为了分层语义区分,让代码结构更清晰:1、@Component:通用组件注解,不确定分层时使用;2、@Service:业务逻辑层专用;3、@Controller:控制层、接口层专用,接收前端请求;4、@Repository:数据访问层专用,操作数据库。10、SpringMVC的执行流程?1、前端发送请求,首先被DispatcherServle
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客户订单处理时效优化建议回复函(5篇)
- 仓库管理员专员考核表
- 高科技企业财务会计流程优化方案手册
- 关于申请减免部分款项的催办函8篇
- 2026湖南永州市大中专毕业生就业指导服务中心见习岗位招聘1人考试模拟试题及答案解析
- 2026年10月福建福州市仓山区公益性岗位街道(镇)、工业园区专职劳动保障协理员补充招聘4人笔试模拟试题及答案解析
- 关于2026年季度财务结算的通知(4篇)范文
- 2027年度国盛证券股份有限公司总部校园招聘34人笔试参考题库及答案解析
- 2026年佛山市公用事业控股有限公司人员招聘考试模拟试题及答案
- 物业管理智能化解决方案研究
- 2026年考研数学二高数极限与连续专项习题
- 2025年南宁市青秀区街道办人员招聘考试试题及答案详解
- DG-TJ08-2329-2026 民用建筑可再生能源综合利用核算标准
- 中世纪大学自治权历史渊源-基于2023年博洛尼亚大学特许状文本分析
- 风机盘管常见故障维修手册
- 髌骨骨折的护理查房
- 电力设施自然灾害应急处置措施
- 2026青海省交通工程咨询有限公司校园引才总笔试历年参考题库附带答案详解
- 牛场绩效考核制度
- 产品研发与质量控制规范(标准版)
- 认真开展六项规定禁酒令专题警示教育和以案促改工作研讨材料
评论
0/150
提交评论