数据库
1.数据库唯一索引unique、聚集索引clustered、非聚集索引nonclustered的用途和区别,优缺点:https://www.cnblogs.com/xiaoweigogo/p/7778781.html
语法:create [unique|clustered|nonclustered] index ix_name on tableName(column1 desc|asc,column2 desc|asc,...)
索引不生效的SQL语句:对索引使用了函数、like、in、数据类型转化cast、负向比较where 1=id
2.数据库函数和存储过程的用法和区别。
区别:https://www.cnblogs.com/eer123/p/7880032.html
函数:https://www.cnblogs.com/xsj1989/p/5354910.html
存储过程:https://www.cnblogs.com/xiangzhong/p/5038338.html
3.数据库游标的使用。
4.数据库的事务的使用语法,优缺点,事务的级别,分布式事务。
5.数据库作业、定时计划。
6.什么是NoSql。(优缺点)
7.什么是非关系型数据库,什么是关系型数据库。(优缺点)
8.非关系型数据库MangoDB,redis,用途。
9.MySql的使用,自定义函数,存储过程,事务,锁,索引,表分区;mysql的MyISAM和InnoDB的区别。
10.具有一定的数据库设计经验
11.sql优化:http://www.cnblogs.com/hgmyz/p/7039597.html
C#
1.session、aspx页面、cookie 的生命周期
2.MVC请求机制
3.冒泡排序,很少使用,一般直接用list.Sort默认升序,降序list.Sort((x, y) => -x.CompareTo(y));
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | int [] arr = new int [] { 2, 3, 9, 6, 3, 5, 10, 8 }; for ( int i = 0; i < arr.Length - 1; i++) { //第i趟比较 for ( int j = 0; j < arr.Length - i - 1; j++) { //开始进行比较,如果arr[j]比arr[j+1]的值大,那就交换位置 if (arr[j] < arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for ( int i = 0; i < arr.Length; i++) { Console.Write(arr[i] + "," ); } |
自定义排序:需要排序的类实现IComparable接口:stus.Sort();,或者单独一个类实现这个接口:stus.Sort(new CComparer());,或者在拉姆达表达式中CompareTo:stus.Sort((x, y) => x.age.CompareTo(y.age));
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | public class CComparer : IComparer<Student> { public int Compare(Student left, Student right) { if (left.age > right.age) return 1; else if (left.age == right.age) return 0; else return -1; } } public class Student : IComparable<Student> { public int age { get ; set ; } public string name { get ; set ; } public int CompareTo([AllowNull] Student other) { if ( this .age > other.age) { return 1; //升序 } else if ( this .age == other.age) { //age相同,按名称默认升序 return this .name.CompareTo(other.name); } else { return -1; //降序 } } public override string ToString() { return this .age + "/" + this .name; } } |
4.线程、委托、事件、多线程异步执行
5.设计模式(单例、简单工厂、抽象工厂、策略模式、观察者模式、命令模式、装饰模式等基本的模式)
6.IOC控制反转,IOC容器;DI依赖注入。
7.熟悉一到两种ORM框架(NHibernate、EntityFramework、ActiveRecord、Dapper等)
8.C#中Struct和Class的区别
9.WCF 的使用;WCF的ABC是什么(Address 地址、Binding 绑定、Contact 契约)。
10.MVC的仓储Repository的使用
11.WebApi如何实现跨域(jsonp、CORS),具体方法看我写的文章。
12.JS是如何面向对象的;js闭包;二维数组;浅copy与深copy;JS继承。
13.SSO单点登录 解决方案;单设备登录,同一个账户只允许在一台设备上登录(仿照QQ)。
14.Bootstrap的使用;jquery、ext、value.js、angularjs、jstree
15.大数据的处理
16.分布式系统(负载均衡、CDN等)
17.系统测试:压力测试、性能测试;掌握测试工具的使用。
18.提高性能的方法:https://www.cnblogs.com/hgmyz/p/7039587.html
19.Memcached使用:https://www.cnblogs.com/xsj1989/p/9089924.html
暂时这么多,都是我面试的时候人家问我的问题,供参考。
写了这么多,真觉得软件开发不是人干的,要会这么多东西,都TM是超人么???
架构师面试:https://www.cnblogs.com/cyq1162/p/9073634.html
Redis面试:https://www.cnblogs.com/extjs4/p/14433962.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】