【Java】Notes and Insights 11【字符串三种类 各种方法 String对象 StringBuilder对象 StringJoiner对象 字符串原理 equals 拼接原理】

字符串的各种方法

  • String substring(int beginIndex, int endIndex); 截取
    注意: 包头不包尾 包左不包右
    只有返回值是截取的小串
  • String substring(int beginIndex) 截取到末尾
  • String replace(旧值,新值); 替换
    只有方法的返回值替换之后的结果

StringBuilder对象 字符串操作快捷工具

StringBuilder 可以看成是一个容器,创建之后里面的内容是可变的
用于提高字符串的操作效率
String会产生很多没有用的中间字符串,影响内存且降低了运行效率

构造方法

public StringBuilder()
public StringBuilder(String str)

成员方法

public StirngBuilder append(任意类型)
public StringBuilder reverse() 反转容器中的内容
public int length()
public Stirng toString()

StringJoiner

偷懒是程序员的美好品格

也可以看成一个容器,创建之后里面的内容是可以改变的

构造方法 没有空参构造呦

public StringJoiner(间隔符号)
public StringJoiner(间隔符号,开始符号,结束符号)

成员方法

public StirngJoiner add(添加的内容) 目前为止只能添加字符串
public int length()
public String toString()

总结

String 很多方法
StringBuilder 拼接与反转
StringJoiner 拼接 JDK8 指定开始结束间隔标记

字符串原理

  1. 直接赋值 可以复用字符串常量池
  2. new 开辟堆中新空间
  3. == 比较的是数据值(基本) 和 地址值(引用)
  4. 引用数据类型使用**.equals()方法!**(否则比较地址没有意义)
  5. 拼接原理

拼接原理

  1. 拼接的时候(等号左边)没有变量,都是字符串
    触发字符串的优化机制,在编译的时候(.java文件)就已经是最终的结果了
  2. 拼接的时候有变量,JDK8前:new StringBuilder().append(s1).append(“b”).toString();
    (一个加号,堆内存中两对象,非常浪费性能)
    JDK8的优化:预估长度并创建数组,然后把数组变成字符串

toString方法的底层是直接new了一个字符串对象
关键点就是在等号右边有没有字符串变量

StringBuilder源码分析

扩容: 老容量2 + 2 = 34
但是如果超出了
2 + 2的容量则以实际容量为准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zanebla

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值