• 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)**
    • 如果扩容之后还不够,以实际长度为准
  • 相关阅读:
    elementui el-tree回显多个节点高亮
    【ModuleBuilder】GP服务实现SDE中两个图层相交选取
    SLAM从入门到精通(dwa速度规划算法)
    牛客网刷题-环形链表
    Phasecraft连下两城,助力英国量子技术商业化加速!
    浪潮服务器使用ARCCONF查看RAID配置信息
    牛客: BM7 链表中环的入口结点
    应用统计学方差分析之单因素方差分析原理解析(含Python代码)
    Servlet详解
    Install and configure iftop
  • 原文地址:https://blog.csdn.net/weixin_61427044/article/details/127680652