• String


    String

    StringBuilder

    StringBuilder 可以看作是一个**容器,创建之后里面的内容是可变的。**

    **作用:**提高字符串的操作效率

    StringBuilder 构造方法

    StringBuilder

    StringBuilder 常用方法

    StringBuIilder常用方法

    链式编程

    当我们在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法。

    依赖前一个方法的结果,再去调用另一个方法。

    StringJoiner 概述

    • StringJoinerStringBuilder一样,也可以看成是一个**容器**,创建之后里面的内容是可变的。
    • **作用:**提高字符串的操作效率,而且代码编写特别简洁,但是目前市场上很少有人用。
    • JDK8出现的
    StringJoiner 的构造方法

    StringJoiner的构造方法

    StringJoiner 的成员方法

    StringJoiner的成员方法

    字符串原理

    扩展底层原理1:字符串存储的内存原理

    • 直接赋值会复用字符串常量池中的
    • new出来不会复用,而是开辟一个新的空间

    扩展底层原理2:==号比较的到底是什么?

    • 基本数据类型比较数据值
    • 引用数据类型比较地址值

    扩展底层原理3:字符串拼接的底层原理

    • 拼接的时候没有变量,都是字符串。**触发字符串的优化机制,**在编译的时候就已经是最终的结果了。
    • 如果没有变量参与,都是字符串直接相加,编译之后就是拼接之后的结果,会复用串池中的字符串
    • 如果有变量参与,每一行拼接的代码,都会在内存中创建新的字符串,浪费内存。

    扩展底层原理4:StringBuilder提高效率原理图

    • StringBuilde 是一个内容可变的容器
    • 所有要拼接的内容都会往StringBuilder中放,不会创建很多无用的空间,节约内存

    扩展底层原理5:StringBuilder源码分析

    • 默认创建一个长度为16的字节数组
    • 添加的内容长度小于16,直接存
    • 添加的内容大于16会扩容**(原来的容量*2+2)
      字节数组
    • 添加的内容长度小于16,直接存
    • 添加的内容大于16会扩容**(原来的容量*2+2)**
    • 如果扩容之后还不够,以实际长度为准
  • 相关阅读:
    创建个人github.io主页(基础版)//吐槽:很多国内教程已经失效了
    亚马逊美国站灯具UL认证灯串UL588认证办理
    Linux系统编程·进程概念
    搜维尔科技:Varjo在混合现实中驾驶船舶
    Linux入门怎么学?262页linux学习笔记,零基础也能轻松入门
    实现一个todoList可直接操作数据(上移、下移、置顶、置底)
    揭秘”智能定投“
    centos三台主机配置互信ssh登录
    力扣(566.303)补8.25
    环境配置 - Conda虚拟环境下配置jupyter notebook
  • 原文地址:https://blog.csdn.net/weixin_61427044/article/details/127680652