上海某上市公司.net面试题

1、public static const int Length=1 有何错误如何改正?

static与const不可同时使用

public const int Length=1 或public static int Length=1

2、$get,$.post,$.getJson有何区别?

$get以get方式异步请求  $.post以post方式异步请求 $.getJSON()使用ajax的HTTP GET强求获取json数据,支持跨域调用

3、如何在string类中实现一个方法,获取空格个数?

我是这样做的:

public int GetNum(string aa)

{

string[] arr = aa.Split(' ');

if (arr.Length == 0||arr.Length==1) return 0;

else return arr.Length - 1;

}

4、XML和JSON格式有什么优缺点?

<1>.XML的优点
  A.格式统一,符合标准;
  B.容易与其他系统进行远程交互,数据共享比较方便。
<2>.XML的缺点
  A.XML文件庞大,文件格式复杂,传输占带宽;
  B.服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
  C.客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
  D.服务器端和客户端解析XML花费较多的资源和时间。
(2).JSON的优缺点
<1>.JSON的优点:
  A.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小;
  B.易于解析,客户端JavaScript可以简单的通过eval()进行JSON数据的读取;
  C.支持多种语言,包括ActionScript, C, C#, ColdFusion, Java, JavaScript, Perl, PHP, Python, Ruby等服务器端语言,便于服务器端的解析;
  D.在PHP世界,已经有PHP-JSON和JSON-PHP出现了,偏于PHP序列化后的程序直接调用,PHP服务器端的对象、数组等能直接生成JSON格式,便于客户端的访问提取;
  E.因为JSON格式能直接为服务器端代码使用,大大简化了服务器端和客户端的代码开发量,且完成任务不变,并且易于维护。
<2>.JSON的缺点
  A.没有XML格式这么推广的深入人心和喜用广泛,没有XML那么通用性;

  B.JSON格式目前在Web Service中推广还属于初级阶段。

5、public void Swap(ref int a,ref int b) 如何在尽量不增加内存开销的情况下互换a,b的值?

我这样做的:int temp; temp=b; b=a;a=temp;

6、数据库连接池和线程池的好处?

连接池技术尽可能多地重用了消耗内存地资源,大大节省了内存,提高了服务器地服务效率,能够支持更多的客户服务。通过使用连接池,将大大提高程序运行效率。

7、下面一段代码有什么错误?

       public void InserLog()

publicstaticstringstrConnection= System.Configuration.ConfigurationManager.ConnectionStrings["mainDB"].ConnectionString;

string msg = "异常信息:出错了!";

            using (SqlConnection conn = new SqlConnection(_Default.strConnection))
            {
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
   cmd.CommandText = string.Format("insert into MsgLog(Msg,CreateDate) values ('{0}',{1})",msg,DateTime.Now.Ticks);
                cmd.ExecuteNonQuery();
            }  

}

异常信息:ExecuteNonQuery 要求已打开且可用的连接。连接的当前状态为已关闭。解决办法: SqlCommand cmd = new SqlCommand()上面增加:conn.Open();

8、下面一段程序输出结果是什么?

       static void Main(string[] args)
        {
            Console.WriteLine(Test());
            Console.ReadKey();

        }

    public static int Test()
        {
            int i = 1;
            try
            {
                throw new Exception("抛出异常!");
                return i;
            }
            catch (Exception e)
            {
                i = 3;
            }
            finally
            {
                ++i;
            }
            if (i <= 3) Console.WriteLine("done");
            return --i;
        }

输出结果:3     执行顺序:throw new Exception("抛出异常!")=》i=3=>++i=>--i

9、string a="1";

      object a="1";

     String b="1";

     Object b="1";区别是什么?

String属于CLR共用语言运行时中的类型,string是C#中的类型。而且,string仅仅只是String类型的一个别名而已。平时使用string就可以了,尽量不要两者都使用

String常用方法
clone()方法:克隆一个一模一样的对象,不会影响原对象。
equals()方法:默认是比较两个对象的地址值
tostring()方法:输出类的属性。一般来说输出的格式是:类名 + @ + 地址值。
 
字符串一旦被赋值,内容就不能改变,但是引用可变。
String s = new String(); //默认构造函数,s什么东西都没有
byte[] bytes = {97,98,99,100}; //A,B,C,D的哈希码
 
String s = “hello”;//在方法区中有,就直接返回;无,则创建;
s +=“word”;//s = helloword 在方法区中没有,要创建。s又是引用另一个地址值
String s2 = new String(bytes); //s2的值为:A,B,C,D
区别:
String s2 = new String(“hello”);//在堆区中,实体放在方法区中的字符串常量值中,在栈区中引用的堆区值则是另外一个地址。
String s1 = “hello”;//栈区中的声明,直接引用方法区中的地址值,如果有的话,直接返回地址值。
 
Object常用方法
Object的每个实例都具有下列属性和方法。
      constructor: 保存着用于创建当前对象的函数。例如 var o = new Object(); 它的构造函数就是 Object。
      hasOwnProperty(propertyName): 用于检查给定的属性在当前的对象实例中(而不是在实例的原型中)是否存在。其中,作为参数的属性名(propertyName)必须以字符串的形式指定(例如: o.hasOwnProperty("name"))。
      isPrototypeOf(object): 用于检查传入的对象是否是传入对象的原型。
      propertyIsEnumerable(propertyName): 用于检查给定的属性是否能够使用for-in语句来枚举。
      toLocaleString(): 返回对象的字符串表示,该字符串与执行环境的地区对应。
      toString():返回对象的字符串表示(null和undefined没有该方法)。
      valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
      当对象进行操作符运算时,先调用valueOf方法,如果不存在再调用toString方法,都不存在返回 NaN。
 
Object和String的equals区别
String类的equals比较的是值
Object类的equals比较的是内存地址

==基本数据类型比较的是值
==引用数据类型比较的是地址

object a = "1";
object b = "1";

string a1 = "1";
string b1 = "1";

Program p1 = new Program();
Program p2 = new Program();

a.Equals(b);//true

a1.Equals(b1);//true

p1.Equals(p2);//false

       

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值