我的解释可能不太清楚,基本上,当你使用一个对象时,会占用内存,对于有些对象当你再次使用时,不是另外分配内存,而是将引用计数加1,当你不再使用时减,为0时就销毁这个对象。像String、Interface都是这样。

解决方案 »

  1.   

    thank you我听清楚了。分全给你了。
      

  2.   

    用在Delphi的AnsiString有了引用记数功能 表示几个字符串都能指向相同的物理地址。因此,复制字符串因为仅仅复制了指针而不是复制实际的字符串而非常快AnsiString在内存中的分配情况:
    ■■■■■■■■■■■■■■■■■#0
    ~~~~~~~   ~~~~~~~        ~~~~~
    分配大小  引用计数       长度
      

  3.   

    前两天在看delphi高级开发指南
    其中就有这一例子
    可以试试
    test:='test string';
    p:=Pointer(integer(Pointer(test))-8);
    refcount:=integer(p^); //为test串的引用计数
    你可以试试
    s1:=test  //此时引用计数refcount就为2了