zoukankan      html  css  js  c++  java
  • 3.6.3 不可变字符串

        String类没有提供用于修改字符串的方法。如果希望将 greeting 的内容修改为“gre!”,不能直接地将 greeting 的第3个元素之后内容替换成'!'。
     
        Java中的操作方法,首先提取需要的字符,然后再拼接上替换的字符串:
                    String s = "greeting";
                String ss = s.substring(0,3) + "!";
                System.out.println(ss);  //输出结果为:gre!
     
        由于不能修改Java字符串中的字符,所以在Java文档中将String类对象称为不可变字符串,如同数字3永远是数字3一样,字符串“Hello”永远包含字符H、e、l、l和o的代码单元序列,而不能修改其中的任何一个字符。当然,如果修改字符串变量greeting,让它引用另外一个字符串,这就如同可以将存放3的数值变量改成存放4一样。
     
        不可变字符串的一个优点:编译器可以让字符串共享。
     
        可以想象将各种字符串存放在公共的存储池中。字符串变量指向存储池中相应的位置。如果赋值一个字符串变量,原始字符串与复制的字符串共享相同字符。
     
        总之,Java的设计者认为共享带来的高效率远远胜于提取、拼接字符串所带来的低效率。实际生产中,很少需要修改字符串,而是往往需要对字符串进行比较。
     
  • 相关阅读:
    C++ 用宏实现swap(a,b)
    C++ string类的实现
    博客园代码高亮Html转换小程序,Linux/Mac下可用
    C++STL
    数据结构课程设计(基于二叉排序树的身份证管理系统)
    简单模拟B1011
    简单模拟B1001
    双向链表的双向冒泡排序 c++
    IO流处理文件读取到字节数组,再从字节数组读取到文件,Java实现
    Java多人聊天室第一版
  • 原文地址:https://www.cnblogs.com/avention/p/10123683.html
Copyright © 2011-2022 走看看