2:StringBuilder-Java API 实战

举报
Yeats_Liao 发表于 2022/10/24 22:49:32 2022/10/24
【摘要】 1. String存在的问题认识String字符串广泛应用在编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了假设有两个String str1和str2,在创建这两个String类的时候...

1. String存在的问题

认识String

  • 字符串广泛应用在编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串
  • String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上
  • String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

假设有两个String str1str2,在创建这两个String类的时候计算机会给他们各自一块内存,当执行str1 = str1 + str2时,按逻辑是str1的内存内容被修改,内存只占了两块,但实际情况是创建了第三块内存str1(str1+str2)
在这里插入图片描述

2. Stringbuilder以及链式调用的含义

StringBuilder和StringBuffer类

  • 可以解决对字符串进行修改
  • StringBuffer 线程安全,性能低,在多线程环境下使用
  • StringBuilder 非线程安全,性能高,在单线程环境下使用

和String的区别

  • 创建单个String类是创建单个对象,创建多个就是创建多个对象,StringBuilder是对对象进行操作,一直操作的都是一个对象

在这里插入图片描述

在这里插入图片描述

trimToSize()方法用于最小化用于字符的存储,去除未使用的空间,也可以用于将动态数组中的容量调整为数组中的元素个数

        stringBuilder.trimToSize();

在这里插入图片描述
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。