數據加載中……

          2010年8月5日

          string和StringBuffer的區別

          如果你在網上一搜,會有非常多的答案,其中最多的就是String是不可變而StringBuffer是可變的,但是這可變與不可變究竟是什么意思呢?如果你能用IDE進行debug的話,你就會發現,String實例化以后所有的屬性都是final的,而StringBuffer確不是,這就是可變與不可變。下面引用SCJP的試題來解釋一下這個例子:

          java 代碼
          1. public class Test {   
          2.    public static void stringReplace (String text) {   
          3.     text = text.replace('j' , 'i');   
          4.     }   
          5.       
          6.    public static void bufferReplace (StringBuffer text) {   
          7.     text = text.append("C");   
          8.     }   
          9.       
          10.     public static void main (String args[]) {   
          11.      String textString = new String ("java");   
          12.      StringBuffer textBuffer = new StringBuffer ("java");   
          13.        
          14.      stringReplace (textString);   
          15.      bufferReplace (textBuffer);   
          16.        
          17.      System.out.println (textString + textBuffer);   
          18.      }   
          19.      }   

          答案是 javajavaC

          這是因為第七行text = text.append ("C"),append方法會改變text中的值,而text與textBuffer指向的地址是相同的。因此會打印javaC

          再舉個例子:

          String a = "a"; //假設a指向地址0x0001

          a = "b";//重新賦值后a指向地址0x0002,但0x0001地址中保存的"a"依舊存在,但已經不再是a所指向的。

          因此String的操作都是改變賦值地址而不是改變值操作

          posted @ 2010-08-05 16:32 Bill_Xie 閱讀(124) | 評論 (0)編輯 收藏

          2010年7月9日

          tomcat的用戶配置

          <tomcat-users>
          <role rolename="manager"/>
            <role rolename="admin"/>
            <user username="admin" password="admin" roles="admin,manager"/>
          </tomcat-users>

          posted @ 2010-07-09 16:50 Bill_Xie 閱讀(150) | 評論 (0)編輯 收藏
          僅列出標題  
          主站蜘蛛池模板: 东山县| 兴国县| 资兴市| 四平市| 独山县| 东源县| 贵南县| 平果县| 福贡县| 兴隆县| 祁门县| 民勤县| 图木舒克市| 建阳市| 梓潼县| 方山县| 望奎县| 桦甸市| 镇宁| 平谷区| 西宁市| 河西区| 大理市| 邵东县| 东至县| 永登县| 汉川市| 阿坝| 平阳县| 庄浪县| 抚顺市| 谢通门县| 辽源市| 汉源县| 塔城市| 洞口县| 潞西市| 江达县| 昭觉县| 景宁| 清水河县|