zoukankan      html  css  js  c++  java
  • 值类型和引用类型 装箱和拆箱 类和结构的异同 接口抽象类异同

    1、栈和堆内存分配区分:
    内存内部的组织情况:分为栈区、堆区、全局区(静态区)static、文字常量区、程序代码区。
    a、由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如果还不清楚,那么就把它想成数组,它的内存分配是连续分配的,即,所分配的内存是在一块连续的内存区域内.当我们声明变量时,那么编译器会自动接着当前栈区的结尾来分配内存.
    b、一般由程序员分配释放, 若程序员不释放,程序结束时可能由操作系统回收.类似于链表,在内存中的分布不是连续的,它们是不同区域的内存块通过指针链接起来的.一旦某一节点从链中断开,我们要人为的把所断开的节点从内存中释放.
    c、全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束后由系统释放。
    d、常量字符串就是放在这里的。 程序结束后由系统释放。
    e、存放函数体的二进制代码。
     
     
    栈在内存分配上是连续的。堆(链表)是分散的。在栈上所申请的内存空间,当我们出了变量所在的作用域后,系统会自动我们回收这些空间,而在堆上申请的空间,当出了相应的作用域以后,我们需要显式 的调用delete来释放所申请的内存空间,如果我们不及时得对这些空间进行释放,那么内存中的内存碎片就越来越多,从而我们的实际内存空间也就会变的越 来越少,即,孤立的内存块越来越多.所以在使用完动态分配的内存(通过NEW申请)后,一定要显式的对它进行DELETE删除.对于这一点,一定 要切记...
    2、A。值类型。值类型是在栈中分配内存,在声明时初始化才能使用,不能为null。值类型超出作用范围系统自动释放内存。
    主要由两类组成:结构,枚举(enum),结构分为以下几类:整型(Sbyte、Byte、Char、Short、Ushort、Int、Uint、Long、Ulong)
    浮点型(Float、Double)
    decimal
    bool
    用户定义的结构(struct)
    B。引用类型。引用类型在堆中分配内存,初始化时默认为null。
    引用类型是通过垃圾回收机制进行回收。
    包括类、接口、委托、数组以及内置引用类型object与string。
     
    装箱:是从值类型转换成引用类型 :  int i=32;ohject o=i;  -->装箱操作
    拆箱:引用类型转换值类型: object o=23,int i=(int)o;
     
    3、结构包括:整型、浮点型、decimal、 bool、 用户定义的结构————》》是值类型。——》在栈中——》可以实现接口和继承,可以作为基类型
         类:引用类型——在堆中,只可以实现接口
     
    4、接口抽象类异同:
    概念不同:接口是对动作的抽象,抽象类是对对象的抽象,对象包括属性动作
    所以:接口可以被多重继承,你可以拥有多个动作,而抽象类只能被继承,因为你爸只能是你爸。如果把抽烟喝酒等一些列动作作为接口,那么作为儿子的你就可以实现这些接口,完全可以抽烟喝酒!
    再一点:接口中所有的方法都是抽象的,而抽象类不必
    还一点: 接口定义方法,不能实现,而抽象类可以实现部分方法。
    最后: 接口中基本数据类型为static 而抽类象不是的。

       

  • 相关阅读:
    买房的贷款时间是否是越长越好?https://www.zhihu.com/question/20842791
    asp.net cookie and session
    leelazero and google colab
    download file by python in google colab
    physical processor, core, logical processor
    通过powershell操作eventlog
    openxml in sql server
    get the page name from url
    How to Execute Page_Load() in Page's Base Class?
    Difference between HttpContext.Request and Request
  • 原文地址:https://www.cnblogs.com/marryZheng/p/5330102.html
Copyright © 2011-2022 走看看