c#面试问题总结
1.你是怎么做到前端向后端传值的时候防止参数被篡改。
2.用户获取像后端获取数据的时候,用什么方式获取客户端的ip.
3.ajax访问数据的原理是什么,jsonp跨域的原理.
4.数据库锁的概念.
乐观锁:
悲观锁:
5.const 与 readonly 区别
-
const,readonly的值一旦初始化都不再可以改写。
-
const只能在声明时初始化,readonly即可以在声明时初始化也可以在构造器中初始化。
-
const隐含static,不可以在写static const.readonly 则不默认static,如需要可以写static readonly.
-
*const 时编译期间静态解析常量,readonly则是运行期间解析的常量
-
const 类中的成员,函数体内的局部变量。
-
readonly类中的成员.
6.ref out 区别
ref是 有进有出,而out是 只出不进
7.NET MVC三种传值方式即区别
viewbag和viewdata只是在页面-控制器之间传值,tempdata是在action-action之间传值
8.什么是w3c规范
9.如何阻塞操作,例如频繁请求,如果控制2秒请求一次
10.什么是内存泄漏,如何排查内存泄漏问题,由什么引起的
11.localstorage是存储在哪里;token是存储在哪里,前端如何获取的;cookie是存储在哪里
12.应对高并发,海量数据查询的网站,谈下你的解决方案(可能用到的架构,技术要点)
-
使用缓存。
-
页面静态化技术。
-
数据库优化。
-
分类数据库中活跃的数据。
-
批量读取和延迟修改。
-
读写分离。
-
适应nosql和Hadoop技术。
-
分布式部署数据库。
-
应用服务和数据服务分离。
-
使用搜索引擎搜索数据库中的数据。
-
进行业务拆分。
13.谈谈finalfinallyfinalize的区别
-
final:如果一个类被final修饰,意味着该类不能派生出新的子类,不能作为父类被继承。因此一个类不能被声明为abstract,又被声明为final。将变量或方法声明为final。可以保证他们在使用的时候不被改变。其初始化可以在两个地方:一是其定义的地方,也就是在final变量在定义的时候就对其赋值;二是在构造函数中。这两个地方只能选其中的一个,要么在定义的时候给值,要么在构造函数中给值。被声明为final的方法也只能使用,不能重写。
-
finally:在异常处理的时候,提供finally块来执行任何的清除操作。如果抛出一个异常,那么相匹配的catch字句就会执行,然后控制就会进入finally块,前提是有finally块。
-
finalize:finalize是方法名,java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是在垃圾收集器确认一个对象没有被引用时对这个对象调用的。它是在Object类中定义的,因此,所有的类都继承了它。子类覆盖finalize()方法已整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。
14.能用foreach遍历访问的对象需要实现?
答:能用foreach遍历访问的对象需要实现IEnumerable接口或声明GetEnumerator方法的类型.
15.什么是委托,action 和func的区别是什么?
https://www.cnblogs.com/LipeiNet/p/4694225.html
https://www.cnblogs.com/zhangchenliang/p/4968779.html
16.在C#中,string str = null 与 string str = “” 他们的区别。
string str = null 是不给他分配内存空间,而string str = "" 给它分配 长度为空字符串的内存空间。
18.
SQLSERVER服务器中,给定表table1 中有两个字段 ID、LastUpdateDate, ID表示更新的事务号,LastUpdateDate表示更新时的服务器时间,请使用一句 SQL语句获得最后更新的事务号
答:Select ID FROM table1 Where LastUpdateDate = (Select MAX (LastUpdateDate)FROM table1)
19.
DataReader与Dataset有什么区别?
答:一个是只能向前的只读游标,一个是内存中的表。
20.
写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
答:
<script> setTimeout('window.close();',3000); function show() { if (window.event.button == 1) { alert("左"); } else if (window.event.button == 2) { alert("右"); } } < /script>
21.列举ASP.NET 页面之间传递值的几种方式。
答: 1).使用QueryString, 如....?id=1; response. Redirect()....
2).使用Session变量
3).使用Server.Transfer
23. C#中的委托是什么?事件是不是一种委托,委托在实际项目中的的用处举个例子? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托.
24. CTS、CLS、CLR分别作何解释? 答:CTS:通用语言系统。CLS:通用语言规范。CLR:公共语言运行库。
25.如何处理几十万条并发数据? 答:用存储过程或事务。取得最大标识的时候同时更新..注意主键不是自增量方 式这种方法并发的时候是不会有重复主键的..取得最大标识要有一个存储过程来 获取. 26.Session有什么重大BUG,微软提出了什么方法加以解决? 答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法 捕获Session的END事件。
27.什么叫做SQL注入,如何防止?请举例说明。 答:利用sql关键字对网站进行攻击。过滤关键字'等
28.写一个函数,将一个字符串插入到另一个字符串的某个位置后面(例如:将”abc”插入到”abcdef”的第三个字符位置后面,结果为”abcabcdef”)
。编写程序时,请在必要的地方加以注释(注:不能用该程序语言的内置函数或过程)
点这里.
29.linq真正去访问数据的时候是什么东西触发的?
ToList() or Count().
30.你除了用过三层架构还有接触过其他的架构模式吗?
31.提升前台的访问速度,你有那些方法?
32.Asp.Net页面传值方式有几种?
1.queryString
2.cookie
3.session
4.application
5.viewStart
6.Transfer
7.web.config
暂时还有没总结完.
33..Net所有类的基类是object;
34
。net工程师