1.String类

  • 创建字符串对象后,字符串对象不可以发生改变,并且这个字符串对象存储在方法区中的字符串常量池中。
  • 即使想改变字符串对象,那么也只是在字符串常量池中重新创建了一个字符串对象而已。

2.StringBuffer类

  • 他的父类是AbstractStringBuilder
  • 创键的字符串在内存中为一个char类型的数组,默认的长度是16。
  • 创建的字符串对象可以发生改变:
    1. 例如使用append()方法可以增加
      1. 使用这个方式增加的符串和String采用"+"号有什么区别?
        1. String采用+号进行字符串的拼接,但是相当于是重新创建了一个字符串对象
        2. StringBuffer 采用append()方法进行增加,只是改变了字符串对象的值,并没有再重新创建一个的字符串对象。
        3. StringBuilder采用append()方法进行增加,只是改变了字符串对象的值,并没有再重新创建一个的字符串对象。
  • StringBuffer类中的所有的方法都是前面带有synchronized关键字(关键字的意思是“同步的”),线程安全

3.StringBuilder类

  • 他的父类是AbstractStringBuilder
  • 创建的字符串在内存中为一个char类型的数组,默认长度是16,这一点和StringBuffer是相同的
  • StringBuilder类中的方法不带有synchronized关键字,线程不安全

 什么时候用String呢?什么时候用StringBuffer呢?什么时候用StringBuilder呢?

  在字符串不经常变化的场景中可以使用 String 类,例如常量的声明、少量的变量运算等
  在频繁进行字符串的运算(如拼接、替换、删除等),并且运行在多线程的环境中,则可以考虑使用 StringBuffer,例如 XML 解析、HTTP 参数解析和封装等。
  在频繁进行字符串的运算(如拼接、替换、删除等),并且运行在单线程的环境中,则可以考虑使用 StringBuilder,如 SQL 语句的拼装、JSON 封装等。

Java String、StringBuilder、StringBuffer类的更多相关文章

  1. 【转载】关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题

    REF: http://blog.csdn.net/fightforyourdream/article/details/15333405 题目是一道简单的小程序,像下面这样:[java] view p ...

  2. Java String StringBuilder StringBuffer

    String是字符串常量 StringBuilder和StringBuffer都是字符串变量 速度方面:StringBuilder > StringBuffer > String 每当用S ...

  3. Java - String, Stringbuilder, StringBuffer比较

    http://www.cnblogs.com/zuoxiaolong/p/lang1.html

  4. JAVA String、StringBuffer、StringBuilder类解读

    JAVA String.StringBuffer.StringBuilder类解读 字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作 ...

  5. java中String StringBuilder StringBuffer比较和效率(性能)测试

    string stringbuilder stringbuffer三者的区别 从JDK源码看,String.StringBuilder.StringBuffer都是存放在char[] 数组字符串. 简 ...

  6. 深入源码剖析String,StringBuilder,StringBuffer

    [String,StringBuffer,StringBulider] 深入源码剖析String,StringBuilder,StringBuffer [作者:高瑞林] [博客地址]http://ww ...

  7. String, StringBuilder, StringBuffer问题

    1. 区别 String为字符串常量,而StringBuilder和StringBuffer都是字符串变量,其中StringBuilder线程非安全,StringBuffer线程安全. 每次对 Str ...

  8. String StringBuilder StringBuffer区别

    String StringBuilder StringBuffer String类是final类,不可以被继承,且它的成员方法也是final方法,当一个字符串对象进行操作操作时,任何的改变不会影响到这 ...

  9. JDK源码分析系列---String,StringBuilder,StringBuffer

    JDK源码分析系列---String,StringBuilder,StringBuffer 1.String public final class String implements java.io. ...

  10. difference among String,StringBuilder,StringBuffer

    difference among String,StringBuilder,StringBuffer String常用构造函数 String(byte[] bytes) String(byte[] b ...

随机推荐

  1. Java 生成海报

    最近项目有个功能是生成海报 一个背景图片,一个二维码图片 将两个图片合并成一个图片. 写了一个工具类,需要的朋友自取. 1 @Component 2 public class PictureUtil ...

  2. Mysql关联删除CSV中的相关数据

    问题描述:提供一个csv文件,记录的是一些不同数据库的不同表中的共同字段account_id数据,需要在A库的account表中做关联删除 解决思路:csv文件中储存的都是account_id,六位纯 ...

  3. EasyExcel配置步骤

    1.介绍 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目 参考 https://blog.csdn.net/u013044713/article/details/1202 ...

  4. 本地socket通讯

    本地socket通讯        虽然学过网络socket,但是对于本地socket通讯却不是很熟悉,刚在项目中看到,所以在网上找了一篇介绍的比较详细的,mark下!!!        socket ...

  5. GPT4free安装部署教程 - 白嫖GPT

    前言 为啥之前一直没有更新GPT相关的内容,因为个人觉得如果每次都需要使用付费使用API的话,那这个工具还是很难在个人手上被运用起来,多测试几次关键字和清洗数据,API的费用对个人来说都太高昂了 直到 ...

  6. 深入理解python虚拟机:黑科技的幕后英雄——描述器

    深入理解python虚拟机:黑科技的幕后英雄--描述器 在本篇文章当中主要给大家介绍一个我们在使用类的时候经常使用但是却很少在意的黑科技--描述器,在本篇文章当中主要分析描述器的原理,以及介绍使用描述 ...

  7. 【开源游戏】Legends-Of-Heroes 基于ET 7.2的双端C#(.net7 + Unity3d)多人在线英雄联盟风格的球球大作战游戏。

    Legends-Of-Heroes 一个LOL风格的球球大作战游戏,基于ET7.2,使用状态同步  Main 基于C#双端框架[ET7.2],同步到ET主干详情请看日志.(https://github ...

  8. Vue 前端开发团队风格指南(史上最全)

    Vue官网的风格指南按照优先级(依次为必要.强烈推荐.推荐.谨慎使用)分类,本文根据项目实际情况整理了一份适用于团队开发的vue风格指南,供大家参考. 一.命名规范 常用的命名规范: camelCas ...

  9. 查找命令 (which 、 find )----grep 、 wc 和管道符,echo ,反引号 `

    which命令 通过which命令,查看所使用的一系列命令的程序文件存放在哪里 find命令 按文件大小查找文件 语法:find  起始路径  -size  [(+,-)k,m,g  ] •+.-表示 ...

  10. SQL课设之报刊订阅管理

    E-R图: 一些常用命令: 1.登录mysql 2.选择进入数据库  相关SQL代码如下: CREATE TABLE Administrator( Gname varchar(50)PRIMARY K ...