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的设计者认为共享带来的高效率远远胜于提取、拼接字符串所带来的低效率。实际生产中,很少需要修改字符串,而是往往需要对字符串进行比较。
     
  • 相关阅读:
    angularjs 学习教程
    Mac下的开发工具
    国双前端笔试题-2016年07月08日
    css3 box-sizing属性
    .NET中制做对象的副本(一)
    Nginx限制IP访问及获取客户端realip实战
    Saltstack实战之无master和多master
    Saltstack之job管理和runner
    Python之异常处理
    Python内置函数之isinstance,issubclass
  • 原文地址:https://www.cnblogs.com/avention/p/10123683.html
Copyright © 2011-2022 走看看