JAVA读书笔记(三)

      String类没有提供修改一个已存在的字符串中的某一个字符的方法,例如:String greeting="Hello";如果想把greeting变成"Help!",不能直接把greeting的最后一位变成'p'和'!',而是保留需要的字符串,将替换的字符串通过"+"连接在一起。

      greeting=greeting.substring(0,3)+"p!";

      String类是不可改变的,就像数字3就是3,字符串"Hello"总是包含H,e,l,l,o等字符的有序集合,这些字符是不能改变的,只能通过改变变量greeting的内容,使它指向另一个不同的字符串。

      这样是否会导致效率降低?只改变某些字符看起来比创建一个新的字符串简单,事实上,重新生成字符串,并且把"Hel"和"p!"拼接起来,并不会影响效率。因为String有一个巨大的优点:编译器将字符串设置为共享的。可以想象到,许多字符串存放在一个公共的池中。String变量指向池中的某一个位置。如果拷贝一个String变量,那么原来的变量和新的变量都指向同一个字符串。

      这里所说的共享同一个字符串,是对字符串常量来说的,对于substring或者+来说,并不适用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值