TOP 20+ .NET和OOP面试题(应届生简易指南)
你正在准备.NET开发者面试吗?这里有一个快速清晰的指南,涵盖了OOP.NETMVCWeb APISQL Server问题,答案简短简单——非常适合快速复习!
🔹 OOP(面向对象编程)
1. OOP的4个支柱是什么?
封装 将数据和方法捆绑在一起
抽象 隐藏复杂性,只显示本质
继承 通过基类/派生类重用代码
多态 一个接口,多种实现(重载/重写)
2. 抽象和封装的区别
概念
抽象
封装
重点
隐藏内部_发生了什么_
隐藏数据_如何_存储
用途
接口/抽象类
访问修饰符
3. C#中接口vs抽象类
特性
抽象类
接口
方法
可以有定义
只有签名(直到C# 8)
修饰符
允许访问修饰符
所有成员都是公共的
继承
单一继承
支持多个接口
4. 重载vs重写
重载: 相同方法名,不同参数(_编译时_)
重写: 在派生类中重新定义基类方法(_运行时_)
🔹 .NET和C#面试题
5. refout的区别?
ref: 传递前必须初始化
out: 无需初始化;必须在方法内赋值
6. .NET中的垃圾回收是什么?
垃圾回收器(GC)通过销毁未使用的对象自动释放内存。
7. ==.Equals()的区别
==: 比较值(值类型)或引用(对象)
.Equals(): 可以比较内容,可以被重写
🔹 ASP.NET MVC问题
8. 什么是MVC架构?
Model: 业务逻辑和数据
View: UI层
Controller: 处理用户输入并更新Model/View
9. MVC中的路由是什么?
将URL映射到控制器/操作方法。
routes.MapRoute("Default", "{controller}/{action}/{id}");
csharp
10. TempData vs ViewData vs ViewBag
特性
ViewData
ViewBag
TempData
类型
Dictionary
Dynamic
Dictionary
生命周期
当前请求
当前请求
当前+下一个请求
用例
数据到View
数据到View
跨重定向
11. MVC中的Action Filters是什么?
Action Filters允许你在控制器中的操作方法执行之前或之后运行逻辑。
示例:
[Authorize] 限制访问
[HandleError] 处理异常
[OutputCache] 缓存输出
🔹 Web API问题
12. .NET中的Web API是什么?
ASP.NET Web API是一个框架,用于构建RESTful HTTP服务,用于Web、移动或桌面应用程序。它支持内容协商(JSON/XML)并且轻量级。
13. 区别:Web API vs MVC
特性
MVC
Web API
目的
返回HTML视图
返回数据(JSON,XML)
返回类型
ViewResult
JsonResult,IHttpActionResult
14. 如何保护Web API?
🔐 使用JWT令牌OAuth 2.0
🛡️ 实现授权过滤器
🔒 使用HTTPS加密通信
15. Web API中的常见HTTP动词
GET 读取数据
POST 创建新数据
PUT 替换整个资源
PATCH 更新部分资源
DELETE 删除数据
🔹 SQL Server面试题
16. WHERE vs HAVING
WHERE: GROUP BY之前过滤
HAVING: GROUP BY之后过滤
17. SQL连接的类型
🔹 INNER JOIN 返回两个表中的匹配行
🔹 LEFT JOIN 左表的所有行+右表的匹配行
🔹 RIGHT JOIN 右表的所有行+左表的匹配行
🔹 FULL OUTER JOIN 当任一表中有匹配时的所有行
🔹 CROSS JOIN 笛卡尔积(每个组合)
18. DELETE vs TRUNCATE
特性
DELETE
TRUNCATE
日志
记录每行
最少日志
WHERE
允许
不允许
回滚
不保证
19. 什么是存储过程?
存储过程是存储在数据库中的预编译SQL语句集,用于执行特定任务。
CREATE PROCEDURE GetEmployees
AS
BEGIN
SELECT * FROM Employees
END
sql
20. SQL中的索引是什么?
索引是一种技术,用于通过减少数据库引擎必须扫描的数据量来加速SQL表中的数据检索
🔍 索引类型:
🔸 聚集索引 根据键值对表中的数据行进行排序和存储。每个表只有一个。
🔸 非聚集索引 将索引与实际表数据分开存储。每个表允许多个。
🔸 唯一索引 确保索引键中的所有值都是唯一的。
🔸 全文索引 用于搜索基于文本的列(例如,LIKE,CONTAINS)。
💡 快速提示:
🎯 在解释时要清晰自信。
🛠️ 练习真实的SQL查询和索引场景。
📚 定期复习这些问题以在面试前保持敏锐。
📌 专业提示:
在处理大型数据集时,索引可以显著提高性能——特别是在WHEREJOINORDER BY查询上。
Aa