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

相关推荐
1104.北光c°4 分钟前
我理解的Leaf号段模式:美团分布式ID生成系统
java·开发语言·笔记·分布式·github·leaf
空空潍7 分钟前
RabbitMQ高级(2w字笔记)
java·rabbitmq·java-rabbitmq
weixin_4434785115 分钟前
Flutter学习之导航与路由
java·学习·flutter
无巧不成书021822 分钟前
Java数值字面量速查表
java·开发语言·python·开发者·字面量
美式请加冰26 分钟前
模拟的介绍和使用
java·开发语言·算法
菜菜小狗的学习笔记33 分钟前
剑指Offer算法题(二)栈、队列、堆
java·开发语言
李宥小哥41 分钟前
SQLite04-表数据管理
java·jvm·数据库
李宥小哥41 分钟前
SQLite05-常用函数
java·开发语言·jvm
huohuopro41 分钟前
idea配置servlet项目
java·servlet·intellij-idea
zzb158044 分钟前
Agent学习-ReAct框架
java·人工智能·python·机器学习·ai