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 可变 支持分隔符、前缀、后缀 需要格式化拼接结果的场景

相关推荐
程序员黑豆4 小时前
Java类型推断完全指南:从var到菱形运算符,掌握使用限制与最佳实践
java·前端·ai编程
风流 少年5 小时前
Spring AI 2.0:Memory
java·后端·spring
码匠许师傅5 小时前
【C++ 面试真题】聊聊 C++ 的移动语义与右值引用
java·c++·面试
小席是个热心肠5 小时前
AI相关的自我学习
java·人工智能·学习
数智化管理手记8 小时前
海量数据如何沉淀有效数据资产?数据标准化治理方案如何搭建?
java·大数据·人工智能
cfm_29148 小时前
SpringAI + Ollama 本地大模型
java·开发语言·人工智能·语言模型
鲸采云SRM采购管理系统9 小时前
采购管理系统哪家好?2026最新测评对比
java·服务器·数据库
0x5310 小时前
Java网络编程(二)
java·服务器·网络
Flittly10 小时前
【雕虫大技】Agent 动态 Skill 供应链安全加固(三):输出校验与治理闭环实战
java·spring boot·spring
Poo_Chai10 小时前
QT emit信号后完整处理流程,包括槽函数响应流程
java·开发语言·数据库