Java进阶API第三章

Java进阶API第三章

一.String存在的问题

1.认识String的存储:

2.String的特点:

String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。

问题:

一但创建就无法修改,所以只能一直创建。 这样会出现大量的内存占用,浪费大量空间。

解决: 使用 StringBuffer & StringBuilder 类

二.StringBuffer 和 StringBuilder 类

1.介绍:

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

  1. 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。
  2. StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。
  3. 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

2. StringBuilder

java 复制代码
package com.google.apl;

import org.junit.Test;

public class Testing {
@Test
    public void dome(){

        StringBuilder stringBuilder = new StringBuilder();
        // 1.添加字符串,方法append
        // 方式一
        stringBuilder.append("Hello");
        stringBuilder.append("World");
        System.out.println(stringBuilder);

        // 方式二:链式调用
        stringBuilder.append("Hello").append("World");

    }
}
java 复制代码
        StringBuilder stringBuilder = new StringBuilder();

        stringBuilder.append("Hello").append("World");

        // 2.将字符串倒序,方法reverse()
        stringBuilder.reverse();
        System.out.println(stringBuilder);
java 复制代码
        StringBuilder stringBuilder = new StringBuilder();

        stringBuilder.append("Hello").append("World");

        // 3.尝试减少用于字符序列的存储(置空)。方法:
        stringBuilder.trimToSize();
        System.out.println("stringBuilder = " + stringBuilder);

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

相关推荐
2601_9669496511 分钟前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨2 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪3 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风3 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
文丑颜不良啊4 小时前
LeetCode876~900题目解析
java·leetcode
aloha_7894 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观5 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
2601_962885725 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
独隅5 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
Wang's Blog5 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友