Java-字符串-超全知识点概述

String

String是Java中最常用的字符串类型,它是一个不可变的字符序列

1.优点

  1. 不可变性

    • 一旦创建,字符串的内容不能被修改。

    • 不可变性使得 String 在多线程环境中非常安全,无需额外的同步措施。

    • 不可变性也使得 String 可以被缓存和共享(如字符串常量池)。

  2. 丰富的API                                                                                                                                      提供了大量的方法用于字符串操作,如 substring()replace()split()equals()

2.缺点

  1. 内存占用较高

    • 每次修改字符串(如拼接、替换等)都会创建新的字符串对象,可能导致大量临时对象的创建和回收。

  2. 性能问题

    • 在频繁修改字符串的场景中,性能可能较低。

3.常见方法

//查找比较
String str = "Hello";
int index = str.indexOf("e"); // 返回 1
boolean isEqual = str.equals("hello"); // false,区分大小写
//子字符串
String sub = str.substring(1, 3); // 返回 "el"
//大小写转换
String upper = str.toUpperCase(); // 返回 "HELLO"
String lower = str.toLowerCase(); // 返回 "hello"
//分割
String[] parts = str.split("l"); // 返回 {"He", "", "o"}

StringBuilder

StringBuilder 是一个可变的字符序列,用于高效地处理字符串拼接和修改操作。

1.优点

  1. 可变性

    • 内容可以被修改,不会创建新的对象。

    • 适合频繁修改字符串的场景。

  2. 性能优化   :在单线程环境中,StringBuilder 的性能优于 String,因为它避免了频繁创建新对象。

2.缺点

    线程不安全,不能在多线程环境中直接使用。

3.常见方法

//拼接
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
String result = sb.toString(); // 返回 "Hello World"
//插入删除
sb.insert(5, "Java"); // 在索引 5 处插入 "Java"
sb.delete(5, 9); // 删除索引 5 到 9 的字符
//反转字符串
sb.reverse(); // 反转字符串

StringBuffer

1.优点

  1. 线程安全

    • 所有方法都是同步的,适合在多线程环境中使用。

  2. 可变性

    • 内容可以被修改,不会创建新的对象。

2.缺点

  1. 性能较低

    • 由于线程安全的同步机制,StringBuffer 的性能比 StringBuilder 更低。

  2. 不推荐在单线程中使用

    • 在单线程环境中,StringBuilder 是更好的选择

常见方法(同StringBuilder)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值