极速网站
申请会员 文章投稿 ACCP教程网公告:
搜索: 您的位置主页>图文教程>java资源>

6.4 java中String类型的不变性

2008-04-17 16:38:50 来源:互联网 作者: 收藏本页 点击:

 

String类型的不变性理解:

String x = "java";

System.out.println(x);//输出为java

x.concat("java");//该方法是在原来的变量后面添加一个字符串然后变成新的字符串

System.out.println(x);//输出为java

x=x.concat("java");

System.out.println(x);输出为javajava

这就是不变性的概念。

所谓的不变性是指对象实例的引用是不可以改变的,但是可以改变它的引用地址阿,所以通过改变引用地址就可以改变值了。

String 常量池

     因为String常量占用的内存空间比较大,因此为了节省内存,JVM专门用一片特殊的区域用作String 常量池,面对String 常量,会检查是否存在于String 常量池中,如果存在,直接一个引用搞定了,就避免重复浪费内存空间。因此必须确保这个具体的常量不能被改变了。这就是上面所讲到的不变性。

         String a="jiao";//这个就是可以使用在String 常量池的常量。

        String a =new String("jiao");//这个就不是放置在String 常量池中,而是放置在常规内存中。

StringBuffer 类的用法
使用 StringBuffer 类的方法,如 append()、insert()、replace()、setCharAt() 和 toString()

public class StringBuf {
    /** 构造方法 */
    protected StringBuf() {
    }
    public static void main(String []args) {
      StringBuffer buf = new StringBuffer("Java");
      buf.append(“ Guide Ver1/”);
      buf.append(3);
      int index = 5;  

      buf.insert(index, "Student ");                              
      index = 23;     
      buf.setCharAt(index, '.');                                   
      int start = 24;  
      int end = 25;
      buf.replace(start, end, "4");                               
      String s = buf.toString();   //转换为字符串
      System.out.println(s);
    }
}




标签:
评论总数:0 [ 发布评论 ] 网友评论
关于我们 - 版权声明 - RSS订阅 - 网站地图 - 网站帮助 成都水货手机网