当前位置: 首页 > news >正文

js--7

一、API 基础

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

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

二、String 类

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

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

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

2.

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

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

3. 常用方法 方法名 作用 equals() 比较字符串内容是否完全相同 equalsIgnoreCase() 忽略大小写比较字符串内容 charAt(int index) 根据索引获取对应字符 length() 获取字符串长度(与数组的 length 属性区分)

4. 典型应用 统计字符串中大写字母、小写字母和数字的个数,是 charAt() 和 length() 方法的经典应用场景。

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

三、StringBuilder 类

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

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

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

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

4. 底层原理

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

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

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

四、StringJoiner 类

1. 核心特性 - JDK 8 新增的可变字符串容器,可高效拼接字符串。 - 支持指定分隔符、前缀和后缀,让拼接代码更简洁。

- 在实际开发中使用频率较低,多数场景仍使用 StringBuilder 。

2. 构造方法 构造方法 说明 public StringJoiner(间隔符号) 创建对象,指定拼接时的间隔符号 public StringJoiner(间隔符号, 开始符号, 结束符号) 创建对象,指定间隔符号、开始符号和结束符号

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

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

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

http://www.jsqmd.com/news/322894/

相关文章:

  • RocketMQ高性能揭秘:承载万亿级流量的架构奥秘|得物技术
  • FPGA 工程师如何真正写好 Verilog 代码?
  • IC 和 FPGA,到底区别在哪?
  • 2026年中大型企业数电乐企解决方案选型参考:主流方案对比及应用场景适配建议
  • 在鸿蒙 PC 上采用 Electron 获取本机 IP 地址
  • 蚕豆病人群营养补充有讲究,万和制药和安胶囊可安心选用
  • 世毫九《认知几何学修订版:从离散概念网络到认知拓扑动力学》
  • ARM架构下CentOS内核版本
  • 世毫九《对话动力学的统计场论框架:从语义相变到集体智慧涌现》
  • 安全经理的CISSP备考之路!精进专业技能,成为了我必须坚持的事
  • 【Azure Storage Account】Azure Table Storage 跨区批量迁移方案
  • 世毫九《自洽量子宇宙学:从全息对偶到观测者约束的物理常数》
  • 小白也能秒懂的AI知识库构建指南,让你的大模型不再“翻车“
  • 网口温湿度记录仪----多协议兼容:传感器与现有系统的无缝衔接
  • AI架构选择指南:RAG还是智能体?小白程序员别再瞎卷,用对工具才是硬道理!
  • 启动多个redis进程
  • Java全栈开发工程师面试实战:从基础到高阶的全面考察
  • 基于python的共享充电宝管理系统[python]-计算机毕业设计源码+LW文档
  • DeepSeek总结的`n1 ^ (n2 -n2)`位操作的含义
  • 这个RAG系统竟然同时集成了BM25+向量+GraphRAG,小白也能轻松上手!三模态检索让AI精准度飙升300%!
  • 2026.1.30
  • AI编程的致命陷阱:我差点被Claude带进伪代码的深渊,小白程序员必看避坑指南!
  • 详解防火墙的工作原理与类型 - 教程
  • 互联网大厂Java求职者面试记
  • 法国政府将禁用Teams、Zoom等美国视频会议应用
  • 互联网大厂Java求职者面试的幽默时刻
  • Java毕设项目推荐-基于springboot+vue的甜品店(烘焙)管理系统基于SpringBoot+Vue的甜品店管理系统设计与实现【附源码+文档,调试定制服务】
  • 物理世界模型驱动:Franka Research 3 机械臂的“零样本”进化之路
  • 大数据领域数据交易的发展瓶颈与突破路径
  • 精准筛查,便捷惠民——健康一体机为体检中心注入科技动能