zoukankan      html  css  js  c++  java
  • 2.秋招复习简单整理之String、StringBuffer、StringBuilder的区别和联系

    String特点:

    1.String是不可变对象,一旦赋值创建就不变,这意味着对String的一切修改将产生一个新的字符串,比如String的subString,replace、toUpperCase、toLowerCase、trim方法都会生成一个新的字符串,一旦程序中有大量字符串修改,将在JVM中堆内存中存在很多旧的临时字符串垃圾对象。

    2.String的不变性使它是线程安全的,可以在多线程中共享而不需要使用锁,因为String不变,所以hashcode值不变,可以缓存提高效率,这也是HashMap等数据结构的key大多采用String的原因。

    3.通过双引号定义的字符串称为字符串字面量,这部分字符串会在字符串常量池创建。

    4.对于字符串的拼接+号,底层是使用的StringBuffer或StringBuilder实现的。

    结论:String不可变,StringBuffer、StringBuilder可变,StringBuffer是同步安全的,性能低于StringBuilder,StringBuilder不同步,线程不安全,但是性能高。

  • 相关阅读:
    UIKit, AppKit, 以及其他API在多线程当中的使用注意事项
    BOZJ-2590 优惠券
    P3620 [APIO/CTSC 2007] 数据备份
    矩阵乘法与快速幂
    CodeForces
    AtCoder
    CodeForces
    考试成绩和学号的(结构体)排序
    CodeForces
    Atcoder Beginner Contest 092 —— C题
  • 原文地址:https://www.cnblogs.com/wenbinshen/p/11178682.html
Copyright © 2011-2022 走看看