zoukankan      html  css  js  c++  java
  • 总结面试之路--2014.9.19

      差不多一个来月,总算是能为国家做贡献了(听说只要你有工资,你就为国家做贡献了,无论工作多少)。趁现在工作不忙,总结下面试之路。

      先说说面试题吧(由于面试的公司顺序记不清了,题目的顺序也有点乱,有些还没写答案呢,后期补上)。

      1.所有可序列化的类都被标记为Serializable
      2.internal修饰符:只有在同一程序集的文件中,内部类型或成员才是可访问的
      3.1 remoting与webservice : remoting 是MarshByReference的,可以传变量的引用,直接对服务器对象操作。速度快,适合intranet(企业内部互联网)。

      webservice 是MarshByValue的,必须传对象的值。速度慢,可以过FIREWALL,配置比较简单,适合internet(因特网)。

      3.2一般来说,remoting是和平台相关的,需要客户和服务器都是.NET,但可配置特性比较好,可以自定义协议。web service可以做到跨平台通信,但必须采用SOAP协议

      4.存储过程的优缺点:   

      优:不用经常的去链接关闭数据,对数据库的访问效率高。一般数据库不出问题,存储过程返回的数据集也没什么问题。存储过程只编译一次,之后都不用编译了,效率高,提高代码的安全性,防止Sql注入;

      缺:修改麻烦(参数要到程序里修改,取值等);可移植性差;维护困难(逻辑复杂的话,跟踪就很不方便了);

      (牛人博客解答:http://blog.csdn.net/jackmacro/article/details/5688687,多谢啦)

      5.ASP.NET的页面生命周期:(这个当时是面试前背诵的,网上比较多,有空亲自体验下)

      6.页面传值有几种方式,说说他们的特点:

      1)QueryString:Response.Redirect( "target.aspx?param1=x||param2=y ")  

      接收页面: string strPar1 = Request.QueryString["param1"];  string strPar2 = Request.QueryString["param2];

      2)Cookie:存放在客户端(大小4KB 限制)

      设置Cookie: HttpCookie cookie_name = new HttpCookie("name");

      cookie_name.Value = Label1.Text;

      Reponse.AppendCookie(cookie_name);

      获取:string name= Request.Cookie["name"].Value.ToString();

      3)Session:服务端存储

      设置Session: Session["name"] ="x";

      获取Session: string name = Session["x"].ToString();

      4).application(服务端,服务重启,数据清除,曾用他保存访客数量呢)

      设置Application : Application["X"] = ="hello";

      获取Application : string name = Application["X"].ToString();

      5)Server.Transfer:(这个具体没用过,得查查,好像是页面引流的那种跳转)

      7.判断IP地址:

     1 static bool IsIP(string str)
     2         {
     3             if (str.ToString() == "")
     4                 return false;
     5             string[] strIp = str.Split('.');
     6             string strIp1 = strIp[0];
     7             string strIp2 = strIp[1];
     8             string strIp3 = strIp[2];
     9             string strIp4 = strIp[3];
    10             int intIp1,intIp2,intIp3,intIp4;
    11             //判断是否为空
    12             if (strIp1 != "" && strIp2 != "" && strIp3 != "" && strIp4 != "")
    13             {
    14                 //判断是否为整数
    15                 if (int.TryParse(strIp1, out intIp1) == true && int.TryParse(strIp2, out intIp2) == true && int.TryParse(strIp3, out intIp3) == true
    16                     && int.TryParse(strIp4, out intIp4) == true)
    17                 {
    18                     //判断是否在IP范围
    19                     intIp1 = Convert.ToInt32(strIp1);
    20                     intIp2 = Convert.ToInt32(strIp2);
    21                     intIp3 = Convert.ToInt32(strIp3);
    22                     intIp4 = Convert.ToInt32(strIp4);
    23                     if ((intIp1 >= 0) && (intIp1 <= 255) && (intIp2 >= 0) && (intIp2 <= 255)
    24                         && (intIp3 <= 255) && (intIp3 >= 0) && (intIp4 >= 0) && (intIp4 <= 255))
    25                     {
    26                         Console.WriteLine("the str is ip");
    27                         return true;
    28                     }
    29                     else
    30                         return false;
    31                 }
    32                 else
    33                     return false;
    34             }
    35             else
    36             {
    37                 Console.WriteLine("the str is not ip");
    38                 return false;
    39             }
    40         }

      8.一张表只有一列,数值型,不使用任何聚合函数,找出最大的:

    SELECT * FROM 
             TABLE 
     WHERE COL NOT IN (
            SELECT A.* FROM 
                      TABLE A ,TABLE B 
             WHERE A.COL<B.COL )                              

      9)10!有几个0:

      只有5 与偶数相乘和10 会产生0,10又可以分为5*2,偶数又可以拆分为2*n,归根还是有几个5的问题。(稍微简单点)

      10)有一个长度为100的int数组,找出出现次数最多的成员和计算出现的次数。(这题当时画了半天没写出来,后面跟他说了下思路,不过他说你这个“下下策”)

      11)写一个前后台数据交互的js:

      我当时是这么写的(之前做一个网站也是这么做的)

      function myData(){ 
      var obj=jsonData(); 
      $.ajax({ 
      type:'post', 
      url:'ajax.aspx', 
      data:jsonData(), 
      dataType:'json', 
      beforeSend:beforecall, 
      success:success
    });

      11)“WCF做过么?”,“没有。。。”,“那HTML5呢?”,“还算熟悉,看了些相关的书,也用H5的一些新标签敲了几个页面”,“存储过程做过优化么?”,“之前写的存储过程和游标之类的SQL语句都比较简单,没做过优化,有时候也抓取存储过程的执行参数跟踪过存储过程异常”,“PHP咋样?”,“用PHP 写过些web service,基础的还算了解吧,具体的项目倒是没有”,“linq知道是啥么?”,“linq基本的语法会用,主要是一些拉姆达表达式,有点像把SQL 语句倒过来,先 from

    然后 where 最后 selec。这些表达式还带有一些方法,排序,存在,以什么开头与结尾等”……

      12)离职原因(不要太过于吐槽上家公司,不然他会觉得你也会吐槽他的公司。)

      13)职业规划(一些职业方向)

      14)该谈钱了!

      面试题有些记不太清,有印象的就这些,先记下,有些有空的时候琢磨下补上。

      总结:要走一条线,.NET很多都是做软件用的,尤其是企业和政府使用的软件,这些都技术上的要求都稍微低点,内部使用,毕竟用户数量也就那些人,当然薪水也很少,而且一般的公司上涨的幅度也就是当前的5%-10%左右,所以要涨钱,还是得去一些上市公司或者互联网公司,。

      职业要求也比较高:javascript要掌握到至少中级水平,jQuery库要很熟悉,三种数据库(SQL SERVER 2008,ORACLE,MYSQL)至少要一种,WCF 或者WEBSERVICE 服务熟悉一种,PHP,HTML5,CSS3,C# 都要掌握(泛型,委托,linq等等),ASP.NET MVC 网站开发经验。要是还熟悉Android,或者WPF等等,那就不是一个等级的待遇了。

      一位面试官的补刀:靠拖控件你说能拖多少钱?

  • 相关阅读:
    Grafana+Prometheus监控mysql性能
    性能测试监控平台Grafana的使用
    搭建grafana+telegraf+influxdb服务器性能监控平台
    cocos2d-x jsb 防止触摸事件传递
    web app 相关记录
    如何在Teamcenter中使用PMI?
    浅谈人机工程应用在数字化工艺中的作用
    关于奇葩说
    一些感想
    关于起名
  • 原文地址:https://www.cnblogs.com/shy-huang/p/3981979.html
Copyright © 2011-2022 走看看