zoukankan      html  css  js  c++  java
  • C# 引用类型和值类型

    1、引用类型

    FCL(Framework)中的大多数类型都是引用类型,引用类型总是在托管堆中分配的,C#的new操作符会返回对象的内存地址,也就是指对象数据的内存地址。在使用引用类型时,存在以下性能问题,这是我们在开发中必须要注意的:

    a、内存必须从托管堆上分配(也就是说每new一个对象,会占用内存,对象过多就会导致内存占用)

    b、 堆上分配的每个对象都有一些额外的成员,这些成员必须初始化

    c、对象中的其他字节(为字段而设),总是设为0

    d、从托管堆中每分配一个对象,可能强制执行一次垃圾回收操作

    所以当我们的应用程序中都是引用类型时,应用程序的性能会显著下降。

    2、值类型

    上面介绍了引用类型,知道了当从托管堆中每分配一个对象时,都会造成应用程序性能的下降。设想当使用Int32类型初始化一个数字6或者使用float初始化一个浮点数6.6的时候,都进行一次内存的分配,那么应用程序的性能会受到严重的影响.为了提供应用程序的性能,CLR提供了名为"值类型"的轻量级类型.

  • 相关阅读:
    LeetCode Single Number
    Leetcode Populating Next Right Pointers in Each Node
    LeetCode Permutations
    Leetcode Sum Root to Leaf Numbers
    LeetCode Candy
    LeetCode Sort List
    LeetCode Remove Duplicates from Sorted List II
    LeetCode Remove Duplicates from Sorted List
    spring MVC HandlerInterceptorAdapter
    yum
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/7506941.html
Copyright © 2011-2022 走看看