• 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)**
    • 如果扩容之后还不够,以实际长度为准
  • 相关阅读:
    基础算法练习200题09、水池注水
    python html转为为PDF
    Pikachu漏洞练习平台----验证码绕过(on server) 的深层次理解
    【有限元分析】异型密封圈计算泄漏量与参数化优化过程(带分析源文件)
    交付实施工程师是做什么的?
    Retrofit2 完全解析 探索与okhttp之间的关系
    【通俗易懂】git原理、安装及连接gitlab,github
    ZKP6.2 Discrete-log-based Polynomial Commitments (KZG10)
    练[GYCTF2020]EasyThinking
    Visual Studio Code使用
  • 原文地址:https://blog.csdn.net/weixin_61427044/article/details/127680652