C#⾯试问题及答案
1.遇到⾼并发的问题如何解决?
优化SQL语句
多线程
分布式服务器
集
拆表
2.Dictionary和ConurrentDictionary的区别?
后者是线程安全的
前者适⽤于单线程
3.Dictionary是什么?
字典和List相⽐, 添加速度慢, 但是查速度很快
Dictionary的本质是两个数组, 存放键值对
* 字典为什么能⽆限地Add呢?
* 从字典中取Item速度⾮常快,为什么呢?
* 初始化字典可以指定字典容量,这是否多余呢?
* 字典的桶buckets 长度为素数,为什么呢?
4.数据库存储过程是怎样的?
⼀段SQL代码, 写⼀次可以多次执⾏, 可以设置⾃增主键
效率⾼速度快
5.怎么理解数据库中的分区?
⽔平分区和垂直分区
是⼀种数据库的设计技术
能提升性能,对数据管理的简化
Windows Mobile是微软为智能⼿机和PDA提供的操作系统,在Windows Mobile 5.之前分为Pocket PC和Smartphone两种版本,
Pocket PC中包括PDA版本和带电话功能的Phone Edition。在Windows Mobile 6.中分为三类:Professional,
即Pocket PC Phone Edition; Standard,即Smartphone;Classic,即⽆电话功能的Pocket PC。
Windows Mobile是基于Windows CE操作系统开发的针对智能⼿机和PDA的操作系统平台。
所以Windows Mobile的硬件与应⽤程序都是由相关的标准要求,符合标准才能够运⾏Windows Mobile操作系统。
7.会不会⽤oracle数据库
会
8.window.form是什么?
是.NET中⽤来开发windows窗⼝的技术
在windows中, 窗体是向⽤户显⽰信息的可是图画, windows操作系统中, 处处都是窗体
为什么使⽤窗体?
简单、强⼤、⽅便、灵活...
c#、winform、wpf的区别?
c#是⼀种编程语⾔
winform则是⼀种界⾯框架,它提供给⽤户丰富的界⾯控件,使开发⼈员更快速,更好的完成开发任务
wpf 被成为新⼀代的界⾯框架,可以说是winform的进化版,它提供了更炫的界⾯控件
9.UDP和TCP是什么?
UDP是不基于连接的⽹络通信协议
TCP是基于连接的⽹络通信协议
UDP适⽤于⽹络视频, 电话会议等实时性强的场景
TCP适⽤于⼤部分的⽹络通信场景
TCP与UDP区别总结:
1、TCP⾯向连接(如打电话要先拨号建⽴连接);UDP是⽆连接的,即发送数据之前不需要建⽴连接
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,⽆差错,不丢失,不重复,且按序到达;UDP尽最⼤努⼒交付,即不保证可靠交付
3、TCP⾯向字节流,实际上是TCP把数据看成⼀连串⽆结构的字节流;UDP是⾯向报⽂的
UDP没有拥塞控制,因此⽹络出现拥塞不会使源主机的发送速率降低(对实时应⽤很有⽤,如IP电话,实时视频会议等)
4、每⼀条TCP连接只能是点到点的;UDP⽀持⼀对⼀,⼀对多,多对⼀和多对多的交互通信
5、TCP⾸部开销20字节;UDP的⾸部开销⼩,只有8个字节
6、TCP的逻辑通信信道是全双⼯的可靠信道,UDP则是不可靠信道
10.数据库隔离层分⼏个?数据库范式有哪些?
1.READ UNCIMMITTED(未提交读)
事务中的修改,即使没有提交,其他事务也可以看得到,⽐如说上⾯的两步这种现象就叫做脏读,这种隔离级别会引起很多问题,如⽆必要,不要随便使⽤
例⼦:还是售票系统,⼩明和⼩花是售票员,他们分别是两个不同窗⼝的员⼯,现在售票系统只剩下3张票,此时A来⼩华这⾥买3张票,B来⼩明买票,⼩华查到余票还有就给接了订单,就要执⾏第三步的时候,⼩明接到B的请求查询有没有余票。看到⼩华卖出了3张票,于是拒绝卖票。但是⼩华系统出了问题,第三步执⾏失败,数据库为保证原⼦性,数据进⾏了回滚,也就是说⼀张票都没卖出去。
总结:这就是事务还没提交,⽽别的事务可以看到他其中修改的数据的后果,也就是脏读。
2.READ COMMITTED(提交读)
⼤多数数据库系统的默认隔离级别是READ COMMITTED,这种隔离级别就是⼀个事务的开始,只能看到已经完成的事务的结果,正在执⾏的,是⽆法被其他事务看到的。这种级别会出现读取旧数据的现象
例⼦:还是⼩明⼩华销售员,余票3张,A来⼩华那⾥请求3张订票单,⼩华接受订单,要卖出3张票,上⾯的销售步骤执⾏中的时候,B也来⼩明那⾥买票,由于⼩华的销售事务执⾏到⼀半,⼩明事务没有看到⼩华的事务执⾏,读到的票数是3,准备接受订单的时候,⼩华的销售事务完成了,此时⼩明的系统变成显⽰0张票,⼩明刚想按下⿏标点击接受订单的⼿⼜连忙缩了回去。
总结:这就是⼩华的事务执⾏到⼀半,⽽⼩明看不到他执⾏的操作,所以看到的是旧数据,也就是⽆效的数据
3.REPEATABLE READ(可重复读)
REPEATABLE READ解决了脏读的问题,该级别保证了每⾏的记录的结果是⼀致的,也就是上⾯说的读了旧数据的问题,但是却⽆法解决另⼀个问题,幻⾏,顾名思义就是突然蹦出来的⾏数据。指的就是某个事务在读取某个范围的数据,但是另⼀个事务⼜向这个范围的数据去插⼊数据,导致多次读取的时候,数据的⾏数不⼀致。
例⼦:销售部门有规定,如果销售记录低于规定的值,要扣⼯资,此时经理在后端控制台查看了⼀下⼩明的销售记录,发现销售记录达不到规定的次数,⼼⾥暗喜,准备打印好销售清单,理直⽓壮和⼩明提出,没想到打印出来的时候发现销售清单⾥⾯销售数量增多了⼏条,刚刚好达到要求,⽓的经理撕了清单纸。原来是⼩明在就要打印的瞬间卖出了⼏张票,因此避过了减⼯资的⾎光之灾。
总结:虽然读取同⼀条数据可以保证⼀致性,但是却不能保证没有插⼊新的数据
4.SERIALIZABLE(可串⾏化)
SERIALIZABLE是最⾼的隔离级别,它通过强制事务串⾏执⾏(注意是串⾏),避免了前⾯的幻读情况,由于他⼤量加上锁,导致⼤量的请求超时,因此性能会⽐较底下,再特别需要数据⼀致性且并发量不需要那么⼤的时候才可能考虑这个隔离级别
11.mvc框架是什么?
Model 模型层
View 视图层
Control 控制层
12.三层架构怎么分?
三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应⽤划分为:界⾯层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的⽬的即为了“jquery是什么有什么作用
⾼内聚低耦合”的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的⼀种结构。微软推荐的分层式结构⼀般分为三层,从下⾄上分别为:数据访问层、业务逻辑层(⼜或称为领域层)、表⽰层。
区分⽅法
1:数据访问层:主要看数据层⾥⾯有没有包含逻辑处理,实际上它的各个函数主要完成各个对数据⽂件的操作。⽽不必管其他操作。
2:业务逻辑层:主要负责对数据层的操作。也就是说把⼀些数据层的操作进⾏组合。
3:表⽰层:主要对⽤户的请求接受,以及数据的返回,为客户端提供应⽤程序的访问。
13.WebService是什么?
⼀⾔以蔽之:WebService是⼀种跨编程语⾔和跨操作系统平台的远程调⽤技术。
所谓跨编程语⾔和跨操作平台,就是说服务端程序采⽤java编写,客户端程序则可以采⽤其他编程语⾔编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运⾏。
所谓远程调⽤,就是⼀台计算机a上的⼀个程序可以调⽤到另外⼀台计算机b上的⼀个对象的⽅法,譬如,银联提供给商场的pos刷卡系统,商场的POS机转账调⽤的转账⽅法的代码其实是跑在银⾏服务器上。再⽐如,amazon,天⽓预报系
统,淘宝⽹,校内⽹,百度等把⾃⼰的系统服务以webservice服务的形式暴露出来,让第三⽅⽹站和程序可以调⽤这些服务功能,这样扩展了⾃⼰系统的市场占有率,往⼤的概念上吹,就是所谓的SOA应⽤。
14.你们做的项⽬前端和后端都⽤了什么框架和技术?
前端: bootstrap,jQuery,js,layUI, Html
后端: Java, SpringBoot, Spring, MyBatis
15.⾯向对象是什么?三⼤特性?
就是万物皆对象, 把⾯向过程的程序设计思想, 变为基于对象的程序设计思想
封装: 属性和⽅法封装在类中
继承: ⼦类继承⽗类的属性和⽅法, 提⾼代码的复⽤性, 是⼦类模块类型⼀致
多态: ⼦类重写⽗类的⽅法, 增加了⽅法的适⽤场景, 提⾼了代码的灵活性
16.如何运⽤⾯向对象的技术?模拟场景:电话会议?
抽取对象
分析对象的⾏为
对象间的相互关系
17.db first和code first怎么实现?
1. db first 是先有数据库,再写代码。根据数据库的表⽣成类。
• django⾥⾯:python manage.py inspectdb
2. code first 是先写代码,后创建数据库。根据类创建数据库表。
• djiango⾥⾯:python manage.py makemigrations python manage.py migrate
什么是Remoting,简⽽⾔之,我们可以将其看作是⼀种分布式处理⽅式。
19.如何⽣成模型类?步骤是怎么样?
使⽤ Microsoft Entity Framework 的 ASP.NET MVC。了解如何使⽤实体向导创建⼀个 ADO.NET 实体数据模型。在本教程的过程中,我们构建的 web 应⽤程序演⽰了如何选择、插⼊、更新和删除数据库数据使⽤实体框架。
20.添加entityframework的步骤?
* 在联⽹的情况下,⼀般通过NuGet安装EF,具体步骤如下:右键单击项⽬名称或引⽤,选择“管理NuGet程序包”。
* 在弹出的对话框中选择Entity Framework并单击安装。
* 安装完成后,项⽬中发⽣如下变化:
- 引⽤中多了EntityFramework与EntityFramework.SqlServer两个应⽤;
- 项⽬中增加了fig⽂件;
- fig中增加了<entityFramework>与<configSection>元素,主要是<entityFramework>,主要内容为:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论