新宇面试题

一、微软外包电话面试

1、描述事务与锁

     事务是用来保证数据的一致性( integrity )而锁是保证数据的并发(控制多个事务的并发)( concurrency )。   锁的级别越高,可能会影响数据库的并发。锁的级别越低一般来说数据库的并发越好。

2、asp.net 生命周期

     页请求 -> 开始 -> 页初始化 -> 加载 -> 验证 -> 回发事件处理 -> 呈现 -> 卸载

     Page Request -> Start -> Page Initialization -> Load -> Validation -> Postback event handling -> Rendering -> Unload

     页面生命周期

     OnpreInit(默认值初始化控件)  -> Oninit(初始化自定义控件) -> OninitComplate(完成Oninit时触发)  -> LoadViewState

     (导入viewstate数据) -> LoadPostData(处理回发数据)   -> OnpreLoad -> OnLoad -> RaisePostDataChanged

     (标记每个控件有没有更新) -> RaisePostBackEvent  -> Page_OnLoadComplate  -> OnPreRender(预呈现)  ->

     OnPreRenderComplate(完成预呈现) -> SaveControlState(保存控件状态) -> SaveViewState() -> Render

     (呈现html) -> Page_UnLoad(销毁对象)

3、多线程编程需要注意

     a、避免直接使用全局变量,当两个线程同时操作该变量时,会出现脏读;

     b、通过接口访问,A线程访问该接口时,需要enterCriticalSection(临介区) 控制,

          则B线程访问时也需要enterCriticalSection控制;

     c、最好通过消息|队列方式,每次A线程会备份某全局变量,B线程访问备份,避免出现脏读;

     d、多线程资源竞争的问题;

     e、多线程间同步的问题;

4、性能优化从哪些方面入手

     数据库方面,sql的性能;

     业务逻辑代码的提高;

     前端优化,如 js、css 等

5、单例模式写法与做用

     方式一:(单线程调用时)

  

     方式二:

   

     单例模式(Singleton)模式主要作用是保证在应用程序中,一个类只有一个实例存在。


原文地址:https://www.cnblogs.com/benzhang/p/1959874.html