java 中操作字符串的都有哪些类?它们之间有什么区别?
- 操作字符串的类有:String、StringBuffer、StringBuilder
- String 和 StringBuffer、StringBuilder区别:
- String 声明的是不可变的对象,每次才做都会生成亲的 String 对象,然后将指针指向新的 String 对象
- StringBuffer 和StrinigBuilder 可以在原有的对象的基础上进行操作,因此,经常改变字符串内容的情况下最好不要使用 String
- StringBuffer 和 StringBuilder 的区别:
- StringBuffer 是线程安全的,StringBuilder 是非线程安全的
- StringBuffer 使用效率低,StringBuiler 使用起来效率高,单线程环境下推荐使用 StringBuilder
String str = “hello”; 与 String str = new String(“hello”); 一样?
- 不一样,两者分配内存的方式不一样。
- 前者,java 虚拟机会将其分配到常量池中。
- 后者,最会被分配到堆内存中。