第13章 字符串

1.不可变的String

tips:对于一个方法而言,参数是为了该方法提供信息的,而不是想让该方法改变自己的。


jdk源码1


jdk源码2

jdk源码中,都是返回一个新的对象,而不是原来的对象。传递的是引用的一个拷贝,引用指向的对象没有改变。

2.重载“+”和StringBuilder

重载操作符:Java中不允许程序员重载操作符,c++中允许。Java中,用于String类型的“+”和“+=”是仅有的重载操作符。什么叫做重载操作符?用在特定类上,赋予不同含义的操作符。


Java反编译

在Java编译器中(编译器可以优化代码),使用了StringBuilder来优化代码,所以StringBuilder效率比String高。StringBuffer,Java SE5以前的,线程安全的,开销大。tips:如果要在toString()中中使用循环,最好自己创建一个StringBuilder对象,不然编译器会在循环内部重复创建StringBuilder对象。

3.无意识的递归

在toString()方法中调用return “something”+this;会循环调用toString()方法,注意使用super.toString()。

4.String上的操作

当需要改变字符串时,返回一个新对象,如果没有改变时,返回指向原对象的引用。

5.格式化输出

1.format 2.Formatter类,%s表示插入的是String类型的。转换成boolean类型是,和其他语言有区别。3.String.format() 

6.正则

Scanner类:在结束的时候回抛出IOException异常,不需要显式抛出异常。

StringTokenizer类:在String支持正则、Scanner类之前。目前基本不在用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,273评论 1 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 有人说,世界的一切是父母送孩子的的第一份礼物。苏暖暖年少无知,傻傻地信了。可她觉得很奇怪,父母送给了她这一份...
    橘文冷阅读 302评论 0 1
  • 20171001早上花了2个小时把这本书看完,有些文字真的让我发出 哦,原来是这样啊。 比如考试前的整理,我记得我...
    信时光阅读 482评论 0 2
  • 一个人一旦接受了对方的爱, 一旦自己付出了爱, 那这感情注定是无法忘怀的吧。
    小小故事大智慧阅读 187评论 0 0