zoukankan      html  css  js  c++  java
  • String,StringBuilder,StringBuffer的区别

    关于String:

           String虽不属于8大基本数据类型,但它的使用频率却很高,我们经常创建一个String对象来指向一个字符串。但是String是一个不可变对象,当我们改变String字符串的内容时,其实是创建了一个新的String对象来代替之前的String对象,。当我们频繁地改变一个字符串的内容时就会因为频繁的创建对象而造成内存消耗,特别是在进行IO操作时,我们一般都会使用StringBuilder或StringBuffer来进行数据的读写,而不是使用String。

    关于StringBuffer和StringBuilder:

           StringBuilder和StringBuffer都提供了append(),complete(),insert() 等修改字符串的方法,而不需要去反复的创建对象,提高了程序的性能。StringBuilder和StringBuffer主要的区别在于,StringBuilder不是线程安全的,而StringBuffer是线程安全的,这是因为StringBuffer中为append()等方法加了同步锁,如下:

    public synchronized StringBuffer append(String str) {
            super.append(str);
            return this;
        }

    不过保证线程的同步也会带来少许的性能损耗,故如果程序是运行在单线程环境下,就使用StringBuilder,当我们的线程需要保证线程安全时,就使用StringBuffer。

  • 相关阅读:
    UILabel滚动字幕的实现
    Objective-C中字典的使用方法总结
    iOS获取汉字的拼音
    iOS界面布局设计
    iOS人机界面指南(翻译)
    前端异步是什么?哪些情况下会发生异步?
    ES6 class类的用法
    js中的递归遍历讲解
    css选择器详解,带实例
    vue实现多个下拉去重
  • 原文地址:https://www.cnblogs.com/weimore/p/7819497.html
Copyright © 2011-2022 走看看