文章内容仅代表个人理解,如有错误欢迎到评论区指点,文章内容仅供参考——
本篇对java中的"抽象类和接口"进行详细的讲解
本期会分成一下四部分进行讲解:
- String 内存表现形式
- String 类的常用方法
- String 与 StringBuffer 和 StringBuilder 的区别
- String 常用知识和技巧
一、String 内存表现形式
1. 不可变性
- 不可变对象:
String
在 Java 中是不可变的,一旦创建就不能更改。每次对String
的修改都会创建一个新的String
对象。 - 原因:不可变性有助于实现线程安全,并允许字符串池的使用。
2. 字符串池
-
字符串池(String Pool):Java 中的字符串池是一个特殊的内存区域,用于存储字符串字面量。它使得相同内容的字符串字面量只存储一份,节省内存。
-
例子:
3. new 关键字创建字符串
-
不同于字面量:使用
new
关键字创建的字符串不会在字符串池中查找,而是直接在堆中创建一个新的对象
二、String 类的常用方法
1. length()
-
返回字符串的长度。
2. charAt(int index)
-
返回指定索引处的字符。
3. substring(int beginIndex, int endIndex)
-
返回一个新字符串,它是此字符串的一个子字符串。[ 左闭右开 )
4. indexOf(String str)
-
返回指定子字符串在此字符串中第一次出现的索引。
5. equals(Object anObject)
-
比较此字符串与指定对象是否相等。
6. toUpperCase()
和 toLowerCase()
-
返回一个新的字符串,它将此字符串中的所有字符都转换为大写或小写。
7. trim()
-
返回一个新的字符串,去除首尾空白字符。
8. replace(CharSequence target, CharSequence replacement)
-
替换此字符串中所有出现的指定字符序列的字符。
9. split(String regex)
-
根据给定的正则表达式分割此字符串,并返回一个String数组。
三、String 与 StringBuffer 和 StringBuilder 的区别
1. 不可变性
String
:不可变,一旦创建无法更改。StringBuffer
和StringBuilder
:可变,允许修改内容。
2. 线程安全
StringBuffer
:线程安全,所有方法都被synchronized
修饰,适用于多线程环境。StringBuilder
:非线程安全,性能比StringBuffer
高,适用于单线程环境。
3. 性能
- 性能比较:
StringBuilder
>StringBuffer
>String
。
四、String 常用知识和技巧
1. 字符串拼接
-
使用
+
运算符拼接字符串时,如果拼接次数多,建议使用StringBuilder
来提高性能。
2. 格式化字符串
-
使用
String.format
方法来格式化字符串。
3. 字符串比较
-
使用
equals
方法进行字符串比较,而不是==
。
4. 字符串转换
-
将其他类型转换为字符串使用
String.valueOf
方法。
5. 字符串连接
-
使用
String.join
方法来连接多个字符串。
好啦看到这里想必您对Java有了新的认知和了解,如果对您有帮助的话请帮我点个一件三连!谢谢!谢谢!谢谢!
我只是个初学者——