js--7

一、API 基础

1.定义:API(Application Programming Interface)是预先实现好的功能接口,我们无需重复编写,直接调用即可。

  1. Java API:指 JDK 中提供的各类功能类 Random 、 String 、 StringBuilder 、 StringJoiner 等。

二、String 类

  1. 核心特性 - 属于 java.lang 包,使用时无需导包。

所有字符串字面量(如 "abc" )本质上都是 String 类的对象。

不可变性:字符串内容在创建后无法修改,任何拼接或修改操作都会生成新的对象。

String name = "abc"; 复用字符串常量池中的对象,效率更高 构造方法

String s = new String(char\[\] chs); 每次都会在堆内存中创建新对象

  1. 常用方法 方法名 作用 equals() 比较字符串内容是否完全相同 equalsIgnoreCase() 忽略大小写比较字符串内容 charAt(int index) 根据索引获取对应字符 length() 获取字符串长度(与数组的 length 属性区分)
  1. 典型应用 统计字符串中大写字母、小写字母和数字的个数,是 charAt() 和 length() 方法的经典应用场景。

  2. 拼接底层原理 - 无变量参与:编译时直接完成拼接,复用字符串常量池中的对象。 - 有变量参与:每次拼接都会创建新字符串对象,造成内存浪费。

三、StringBuilder 类

  1. 核心特性 - 是一个可变的字符串容器,可直接修改内容,避免频繁创建对象,提升性能。

适用于频繁拼接、修改字符串的场景。

  1. 构造方法 构造方法 说明 public StringBuilder() 创建一个空的可变字符串对象 public StringBuilder(String str) 根据传入的字符串创建可变对象

  2. 常用方法 方法名 作用 append(任意类型) 向容器添加数据,返回对象本身,支持链式调用 reverse() 反转容器中的内容 length() 获取容器中字符的个数 toString() 将 StringBuilder 转换为 String 类型

  3. 底层原理

  • 效率优势:所有拼接内容都直接放入容器,不会创建大量无用对象,节约内存。

  • 扩容机制: - 默认初始容量为 16。

  • 扩容规则: 老容量 * 2 + 2 。 - 若计算后的容量仍不足,则直接使用实际所需容量。

四、StringJoiner 类

  1. 核心特性 - JDK 8 新增的可变字符串容器,可高效拼接字符串。 - 支持指定分隔符、前缀和后缀,让拼接代码更简洁。
  • 在实际开发中使用频率较低,多数场景仍使用 StringBuilder 。
  1. 构造方法 构造方法 说明 public StringJoiner(间隔符号) 创建对象,指定拼接时的间隔符号 public StringJoiner(间隔符号, 开始符号, 结束符号) 创建对象,指定间隔符号、开始符号和结束符号

五、 String 不可变 内容安全,复用性高 字符串内容固定的场景

StringBuilder 可变 高效拼接、修改 频繁操作字符串的场景

StringJoiner 可变 支持分隔符、前缀、后缀 需要格式化拼接结果的场景

相关推荐
xcl09253 小时前
幼儿托育系统开发实战:从需求分析到上线全流程指南
java·大数据·需求分析
吴声子夜歌3 小时前
ApacheCommons——commons-cli(命令行参数解析)
java·开发语言·apache
小小猪的春天3 小时前
Java 手写第一个 MCP Server:Spring AI MCP 半小时跑通
java·人工智能·spring boot·ai编程
find1star3 小时前
LeetCode 141:环形链表
java·算法·leetcode·链表
今天AI了吗4 小时前
DeepSeek Harness 深度解析:从评测架构到实战落地
java·网络·数据库·人工智能·架构·java-ee
许彰午4 小时前
27-AuthService登录链路
java·低代码·架构
泡海椒4 小时前
JQuick-Curl 性能分析:并发场景下的性能表现与调优,第三方接口调用不只要快写也要稳跑
java·开发语言·okhttp
Rain的Java大神之路5 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
自动化监测Learner5 小时前
Navicat Premium 17 中文版安装教程(2026最新版)
java·linux·数据库
那个松鼠很眼熟w6 小时前
4.Spring-Ai入门案例
java·人工智能·spring