• 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)**
    • 如果扩容之后还不够,以实际长度为准
  • 相关阅读:
    Linux下快速搭建YApi接口管理平台
    NI USRP RIO软件无线电
    Leetcode—7.整数反转【中等】
    腾讯云遭受爆破攻击(记录)
    WordPress供求插件API文档:获取用户资料
    Ribbon
    品牌发展,为什么要做好低价管控
    Python爬虫基础(二):使用xpath与jsonpath解析爬取的数据
    【Axure教程】自定义显示隐藏的中继器表格
    【Git学习三】git中的分支管理:git branch,git checkout,解决git中的分支冲突的方法
  • 原文地址:https://blog.csdn.net/weixin_61427044/article/details/127680652