• 收集面试题目Net


    【目的以及说明】:

    记录Net面试的题目,方便自己以及各位面试者,其来源都是网络以及自己面试中的题记

    do yourself

    【基础】

    1.面向对象的三个基本特征?

    封装(encapsulation)、继承(Inheritance)、多态(polymorphisn)。

    封装:把客观事物封装成抽象的类,并且类只向可信的类或者对象提供数据和方法操作,隐藏自身实现。

    继承:从现有类的基础上,使用所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

    多态:实现同名函数的不同执行。有:继承作用下的重写 override,同命名空间范围内同函数名同返回不同参数下的重载overloads


    2.引用类型(Reference Type)和值类型(Value Type)的区别?

    引用类型,存储在堆上,包含一个指向实例的指针,默认赋值为null;

    值类型,存储在堆栈上,存储的是一个实际值,默认赋值为空。

    C#中

    值类型包括:结构体(数值类型、bool型、用户定义的结构体)、枚举、可空类型。

    引用类型包括:数组、用户定义的类、接口、委托、Object、字符串。

    3.结构(Struct)和类(Class)的区别?

    结构为值类型,没有默认的构造函数,没有析构函数,不能继承和被继承,变量不能直接初始化,可以不New而直接声明,不能修饰符;

    类为引用类型,有构造函数和析构函数,可以继承和被继承,声明时必须先New才能被使用。

    相同点:可以实现多个接口,都由Object类派生。

    测试二者,在C#中,默认都是private访问。对外都需要Public修饰

    在C++中(只讨论C++中)。class和struct做类型定义时只有两点区别:
    (一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;
    (二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。
    除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。

    4.C#中引用类型(Reference Type)和值类型(Value Type)都有哪些?

    值类型:

    整型(int)、长整型(long)、浮点型(float)、字符型(char)、布尔型(bool)、枚举(enum)、结构(struct);

    引用类型:

    类(class)、字符串(string)、接口(interface)、数组(int[],string[])、集合(arraylist)。

    5.什么是装箱(boxing)和拆箱(unboxing)?

    装箱就是值类型转换为引用类型,拆箱就是引用类型转换为值类型。

    6.判断空字符串的几种方法?

    string str="";

    1.if(str=="")判断速度最慢

    2.if(str==string.Empty)

    3.if(str.Length==0)判断速度最快

    7.开放系统互连(OSI,Open System Interconnection)模型的七层结构?

    从上往下:

    应用层(A),表示层(P),会话层(S),传输层(T),网络层(N),数据链路层(DL),物理层(PH)。

    8.说出你知道的几种常用通信协议?

    1.TCP/IP协议:(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议),分四层,应用层、传输层、互联网层、网络接口层。

    2.SOAP协议:(Simple Object Access Protocol,简单对象访问协议),基于XML的协议。

    3.UDP(User Datagram Protocol,用户数据报协议)。

    4.HTTP(Hyper Text Transfer Protocol,超文本传输协议)是万维网(www,world wide web)的基础,属于应用层的页面对象的协议。

    5.FTP(File Transfer Protocol,文件传输协议)是网际提供的用于访问远程机器的一个协议,使用户可以在本地与远程机器之间进行有关文件的操作。

    9.C#中虚函数(Virtual),抽象类(Abstract)和接口(Interface)有什么区别?

    虚函数,可以被Override的函数。

    抽象类,不能被直接实例化的类。

    接口,只有函数定义,没有函数实现,只能被继承,不能被实例化的类,相当于纯抽象类,可以实现多继承。

    10.Const和Readonly有什么区别?

    const关键字用来声明编译时常量,readonly用来声明运行时常量。

    http://www.cnblogs.com/GoGoagg/archive/2005/09/08/232320.html

    11.System.String 和System.StringBuilder有什么区别?

    System.String是不可变的字符串。

    System.StringBuilder存放了一个可变的字符串,并提供一些对这个字符串修改的方法。

    问:string A = "";A = A + "new string";

    A所在地址发生变化没有??

    以前学习string和StringBuilder总结:

    http://www.cnblogs.com/GoGoagg/archive/2005/09/07/231764.html

    string.Join的应用:

    这个类似Replace方法的应用。

    举例:

    原字符串:*;|@123***456@|;* 

    输出字符串:123456 

    http://www.cnblogs.com/GoGoagg/archive/2008/07/17/1245223.html

    12、new的用法

    在 C# 中,new 关键字可用作运算符、修饰符或约束。

    new 运算符
    用于创建对象和调用构造函数。

    new 修饰符
    用于向基类成员隐藏继承成员。

    new 约束
    用于在泛型声明中约束可能用作类型参数的参数的类型。

  • 相关阅读:
    编程里的数字游戏
    SqlServer2005Express下的事件探查器
    来玩玩这个
    把一个bitmap在内存中的数据块 搬到另一个bitmap中
    一些常用的sql
    C#图像处理
    来玩玩画直线
    关于未来的思考
    年末个人小结
    [转载]编写超级可读代码的15个最佳实践
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/1795770.html
Copyright © 2020-2023  润新知