当前位置: 首页 > 面试题库 >

Java 中操作字符串都有哪些类?它们之间有什么区别?

司马辉
2023-03-14
本文向大家介绍Java 中操作字符串都有哪些类?它们之间有什么区别?相关面试题,主要包含被问及Java 中操作字符串都有哪些类?它们之间有什么区别?时的应答技巧和注意事项,需要的朋友参考一下

操作字符串的类有:String、StringBuffer、StringBuilder。 三者区别:

StringBuffer和StringBuilder都继承自抽象类AbstractStringBuilder。 String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象,而 StringBuffer、StringBuilder 存储数据的字符数组没有被final修饰,说明值可以改变,抽象类AbstractStringBuilder内部都提供了一个自动扩容机制,当发现长度不够的时候(初始默认长度是16),会自动进行扩容工作,扩展为原数组长度的2倍加2,创建一个新的数组,并将数组的数据复制到新数组,所以对于拼接字符串效率要比String要高。 线程安全性:StringBuffer由于很多方法都被 synchronized 修饰了所以线程安全,但是当多线程访问时,加锁和释放锁的过程很平凡,所以效率相比StringBuilder要低。StringBuilder相反执行效率高,但是线程不安全。所以单线程环境下推荐使用 StringBuilder,多线程环境下推荐使用 StringBuffer。 执行速度:StringBuilder > StringBuffer > String。

 类似资料:
  • (1)String String是不可变对象,每次对String类型的改变时都会生成一个新的对象。 (2)StringBuilder 线程不安全,效率高,多用于单线程。 (3)StringBuffer 线程安全,由于加锁的原因,效率不如StringBuilder,多用于多线程。 不频繁的字符串操作使用String,操作频繁的情况不建议使用String。 StringBuilder > String

  • 本文向大家介绍HTML5有哪些存储类型?它们之间有什么区别?相关面试题,主要包含被问及HTML5有哪些存储类型?它们之间有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 cookie: 最大 4k, 基本无兼容问题, 所有同源tab 共享, 每次请求都携带, key-value 存储, value 只存字符串 sessionStorage 无大小限制, 只在当前 tab 有效, tab 关闭

  • 问题内容: 在PHP中,将解析包含在“双引号”中的字符串以替换变量,而不会解析包含在“单引号”中的字符串。在Python中,这是否也适用? 问题答案: 否: 2.4.1。字符串和字节文字 …用简单的英语:两种类型的文字都可以用匹配的单引号()或双引号()括起来。它们也可以包含在三个单引号或双引号的匹配组中(通常称为三引号字符串)。反斜杠()字符用于转义具有特殊含义的字符,例如换行符,反斜杠本身或引

  • 本文向大家介绍网络框架有哪些?他们之间的区别是什么?相关面试题,主要包含被问及网络框架有哪些?他们之间的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 Xutils 这个框架非常全面,可以进行网络请求,可以进行图片加载处理,可以数据储存,还可以对view进行注解,使用这个框架非常方便,但是缺点也是非常明显的,使用这个项目,会导致项目对这个框架依赖非常的严重,一旦这个框架出现问题,那么对项目

  • 问题内容: 我正在尝试对术语“字符”,“代码点”和“代理”进行解释,尽管这些术语不仅限于Java,但如果存在特定于语言的差异,我希望将其解释为它与Java有关。 我发现了一些有关字符和代码点之间差异的信息,字符是为人类用户显示的内容,代码点是对该特定字符进行编码的值,但是我不知道代理。什么是代理,它们与字符和代码点有何不同?我对字符和代码点是否有正确的定义? 在另一个关于将字符串作为字符数组步进的

  • 本文向大家介绍清空一个数组的方式有哪些?它们有什么区别?相关面试题,主要包含被问及清空一个数组的方式有哪些?它们有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 方法1 这是完美的,因为这实际上创建了一个全新的(空)数组 仅当您仅通过数组的原始变量A引用数组时才使用此选项。 方法2 通过将现有数组的长度设置为 0 来清除该数组 会影响元数组 方法3 .splice()函数将返回一个包含所有已