首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师-string和StringBuilder的区别

2012-07-28 
黑马程序员--string和StringBuilder的区别---------------------- android培训、java培训、期待与您交流! --

黑马程序员--string和StringBuilder的区别

---------------------- android培训、java培训、期待与您交流! ----------------------


1、操作上

    string对象是不变,怎么去理解这个“不变”呢,不变也就是内存中的长度是不变的!

    例如:

       string str="a";

       str=str+"b";

     代码解析:声明一个str对象值是a,第二行的时候本身加上b,此时CLR在进行内存操作的时候,并没有将str原有的长度变长然后附加上b值,而是重新声明一个对象(从新在内存中开辟一片不变的空间存放第二句的操作),第一句声明的对象str将被丢弃!

    StringBuilder是可变的,也是专门对字符串进行操作的类!

    例如:

    StringBuilder sb=new StringBuilder("a");

    sb.Append("b");

     StringBuilder在内部有一个足够长的字符数组用于存放字符串对象,当字符串超过数组的长度的时候,将会自动创建一个更长的数据,然后把原来的数据复制到新数组中,没有超过的话就始终操作同一个字符串数组!


2、操作性能上的比较

   内存都是昂贵的,当然我说的不是价格,是程序在运行中内存需求!

   当使用string的时候,频繁的操作字符串,就会不断的分配新的内存,然后进行操作,而StringBuilder就不会,所以在日常开发的时候,要进行对字符串进行频繁的操作的时候就考虑使用StringBuilder而不是使用string来进行频繁的操作字符串!

   

---------------------- android培训、java培训、期待与您交流! ----------------------

热点排行