zoukankan      html  css  js  c++  java
  • 常见问题汇总

     
     1.override 与重载的区别
    重载是⽅法的名称相同。参数或参数类型不同,进⾏多次重载以适应不同的需要,本质上不同的重载在编译时会分成不同的⽅法。
    Override 是进⾏基类中函数的重写。在不同⼦类中有不同的实现,在 OO 中是⾏为的抽象。
     
    2.什么是装箱和拆箱?
          装箱:从值类型接⼝转换成 Object 引⽤类型为装箱。
            
          拆箱:从 Object 引⽤类型强制转换到值类型为拆箱。
    3.abstract class 和 interface 有什么区别?
    声明⽅法的存在⽽不去实现它的类被叫做抽象类(abstract class),它⽤于要创建⼀个体现某些基本⾏为的类,并为该类声明⽅
    法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然⽽可以创建⼀个变量,其类型是⼀个抽象类,并让它指向具体⼦类
    的⼀个实例。不能有抽象构造函数或抽象静态⽅法。Abstract 类的⼦类为它们⽗类中的所有抽象⽅法提供实现,否则它们也是抽象类
    为。取⽽代之,在⼦类中实现该⽅法。知道其⾏为的其它类可以在类中实现这些⽅法。
    接⼝(interface)是抽象类的变体。在接⼝中,所有⽅法都是抽象的。多继承性可通过实现这样的接⼝⽽获得。接⼝中的所有⽅法都
    是抽象的,没有⼀个有程序体。接⼝只可以定义 static final 成员变量。接⼝的实现与⼦类相似,除了该实现类不能从接⼝定义中继承⾏为。
    当类实现特殊接⼝时,它定义(即将程序体给予)所有这种接⼝的⽅法。然后,它可以在实现了该接⼝的类的任何对象上调⽤接⼝的⽅法。
    由于有抽象类,它允许使⽤接⼝名作为引⽤变量的类型。通常的动态联 编 将 ⽣ 效 。 引 ⽤ 可 以 转 换 到 接 ⼝ 类 型 或 从 接 ⼝ 类 型 转 换 ,
    instanceof 运算符可以⽤来决定某对象的类是否实现了接⼝。
     
    4.堆和栈的区别?
    栈:由编译器⾃动分配、释放。在函数体中定义的值类型局部变量通常在栈上。
    堆:⼀般由程序员分配释放。⽤ new 实例化的引⽤类型对象分配到堆上。
     
    5、String 和 string 有什么区别?
    String 和 string 是等价的,string 是关键字,在编译器编译时会把关键字 string 解析成 String 类。
    相类似的还有很多,⽐⽅说 int 编译时会变成 Int32,long 会变成 Int64,Int32 和 Int64 都是.Net 内置定义好的结构体。
    所以从本质上来说,.Net 内的关键字类型都是某些类、结构体、枚举等类型,只不过是.Net 已经提前内置定义好的。
     
    6、字符串操作中为什么经常会转成字符数组然后进⾏ CopyTo 操
    作?
    因为字符串在堆中是以只读的形式存在,也就是说是不能修改的。在⼀些情况下,⽐如有⼀⼤篇⽂章,⾥⾯需要改很多⽂字,如果每次
    进⾏字符串中的字符替换,都回在堆内存中重新分配整篇⽂章的内存空间,⾮常浪费资源,所以⼀个⾮常好的办法就是先转换成字节数组,
    这时就是可修改的,修改完以后再⼀次性转成字符串。
     
    7、复合格式化输出字符串时,如 String.Format({0,10:h},var1);这⼏
    部分都是什么?
    其中{0}是占位符,由后⾯的第⼀个参数变量 var1 替换,10 是代表占位长度,正数代表变量在右边,负数代表在左边。h 是格式化修饰
    符,⽐如如果变量是时间类型的,h 代表⼩时。
     
    8、字符串的 Trim()只⽤来去前后空格吗?去别的⾏吗?
    问题⾮常好,Trim()⽅法有两个重载,默认空参数的重载的功能是去掉字符串的前后空格。另外⼀个重载是带参数的,参数类型是字符
    数组,也就是可以去掉的各种字符。⽤⼀个例⼦来说明这个问题。
    char[] rp = { 'a','b'};
    string str = "a 你好,中国。b";
    str = str.Trim(rp);
    MessageBox.Show(str);
     
  • 相关阅读:
    Silverlight实用窍门系列:68.Silverlight的资源字典ResourceDictionary
    在HyperlinkButton的URL地址里附加多个参数(以http get的方式)
    SilverLight CheckBox 控件 DataContext属性与DataContextChanged事件
    关于事件在意料之外触发的问题
    关于Telerik RadGridView 数据列拖动后异常的一种情况
    silverlight使用小计(先做记录后续整理)
    Redis_简介和安装
    Python并行系统工具_multiprocessing模块
    Python并行系统工具_程序退出和进程间通信
    Python并行系统工具_进程分支
  • 原文地址:https://www.cnblogs.com/ComputerVip/p/11660515.html
Copyright © 2011-2022 走看看