2020年JAVA面试208题
2020年JAVA面试208题
小崔爱读书
018-Java中操作字符串的类有哪些
3 minutes Posted Aug 10, 2022 at 11:30 pm.
0:00
3:29
Download MP3
Show notes

1 Java中操作字符串的有3个类:String  StringBuilder StringBuffer

2 String的本质是字符数组

3 String内部定义了一个字符数组存储字符串的每个字符,并且改字符串被final修饰,所以,决定了String的内容是不可修改的,一旦修改其实是重新开辟了内存,创建了新的字符数组。

4少量的字符串编辑和修改,用String没问题。频繁的字符串编辑修改,String的性能太低了。

5 StringBuilder是为了频繁操作字符串而生的。它默认开辟一块更大的字符数组,比如一个字符串只有8个字符,StringBuilder开辟一块儿32个字符的空间存储改字符串,这样如果在该字符串后再追加8个字符,就不需要开辟新空间了,从而提高了性能。

7 StringBuilder和StringBuffer的功能和方法是一模一样的,区别就是StringBuilder是线程不安全的,StringBuffer是线程安全的。

8 StringBuffer在每个方法上使用Synchronized关键字进行修饰,方法在多线程中是同步的,从而实现线程安全。你好你好

9总结:

String性能低,操作简单,只能在不频繁操作字符串的时候使用;

StringBuilder的性能最好;

StringBuilder和StringBuffer所有功能和方法都一样;

StringBuilder是线程不安全的,StringBuffer是线程安全的;

StringBuffer因为线程安全,所以性能不如StringBuilder好