String Stringbuffer  StringBuilder的区别:

1、string是字符串常量,且长度是不可改变的,Stringbuffer、stringBuilder是字符串变量

2、Stringbuffer是线程安全的,StringBuilder是非线程安全,主要用在全局变量中。

3、String是改变赋值的地址,而不是改变String中的值:

如:String a = “a”;//假设它的地址是001;值a是放在常量池中的

String a = “b”;//重新对a赋值后a指向的地址就002,且将值b放入常量池,而之前的值a也是存在的。

4、String是不可变的类,每次对String的操作都会生成新的String对象,不仅效率低下,而且会大量的浪费内存空间,对于StringBuffer,每次结果都会对StringBufer本身进行操作且不会产生新的对象和改变对象的引用,所有一般都使用Stringbuffer。

5、他们三个的运行速度不一样:

(1)通常情况下,三个的运行速度排列为:StringBuilder>Stringbuffer>String。但也有特殊情况,

如:String a=”a”+”b”;

Stringbuffer b=new StringBuilder(”a”)append(”b”);

以上的话String的速度要大于StringBuffer,因为在这种情况下JVM把String a看成了 String a=”ab”了。

6、运用场景

(1)如果是操作少量的数据使用String。

(2)单线程操作字符串缓冲区下操作大量数据使用StringBuilder。
(3).多线程操作字符串缓冲区下操作大量数据使用StringBuffer。

以上知识是我参考xieke90的博客进行整理,以上知识还存在一些不足,望各位多多包涵及补充指正。若需了解更多关于java的知识的可以进入知了堂社区进行了解http://www.zhiliaotang.com/portal.php

【知了堂学习笔记】_String、StringBuffer与StringBuilder的区别的更多相关文章

  1. 【知了堂学习笔记】java 自定义异常

    java 常见异常种类(Java Exception): 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCas ...

  2. 【知了堂学习笔记】java IO流归纳总结

    皮皮潇最近学到了IO流但是感觉这一块要记的东西太多了,所以重API上查阅并总结了以下几点关于IO的知识. 1.File(文件类): File类是文件以及文件夹进行封装的对象,用对象的思想来操作文件和文 ...

  3. [知了堂学习笔记]_纯JS制作《飞机大战》游戏_第1讲(实现思路与游戏界面的实现)

    整体效果展示: 一.实现思路 如图,这是我完成该项目的一个逻辑图,也是一个功能模块完成的顺序图. 游戏界面的完成 英雄飞机对象实现,在实现发射子弹方法过程中,又引出了子弹对象并实现.在此时,英雄飞机能 ...

  4. [知了堂学习笔记]_ajax的两种使用方式

    一.Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都 ...

  5. 【知了堂学习笔记】java 编写几种常见排序算法2

    排序的分类: 1.直接选择排序 它的基本思想是:第一次从R[0]~R[n-1]中选取最小值,与R[0]交换,第二次从R[1]~R[n-1]中选取最小值,与R[1]交换,....,第i次从R[i-1]~ ...

  6. 【知了堂学习笔记】java 编写几种常见排序算法

    排序的分类: 一.交换排序 所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动. 1.冒泡 ...

  7. 【知了堂学习笔记】java 正则表达式

    本文参考网络上面别人的博客知识产出 正则表达式基础 1.句号 假设你想要找出三个字母的单词,而且这些单词必须以“t”字母开头,以“n”字母结束.另外,假设有一本英文字典,你可以用正则表达式搜索它的全部 ...

  8. 【知了堂学习笔记】java 接口与抽象类

    本次主角:抽象类 .接口. 对于皮皮潇这样一类的Java初学者来说,接口和抽象类如果不去花大量的精力与时间是很难弄清楚的,而我也是在最近这周的项目学习中感觉到了我对这两个概念不熟悉,所以导致对一些问题 ...

  9. 【知了堂学习笔记】java web 简单的登录

    最近皮皮潇在学习java web,刚接触了简单的东西,所以今天给大家带来一个简单的登录实现. 页面: 页面代码: <%@ page language="java" conte ...

随机推荐

  1. Less合并

    合并是LESS的一个特性,它允许通过指定的语法来为某个属性添加使用逗号或空格分隔的值的列表.对于文本阴影.盒阴影.背景.变换等允许使用值的列表的属性,合并非常有用. 合并的语法,就是在属性名称和冒号之 ...

  2. DIV+CSS特殊符号的处理方法

    :    :;    ;<    <=    =>    >?    ?@    @^    ^_    _`    `{    {|    |}    }~    ~---  ...

  3. SQL Count(*)函数,GROUP_By,Having的联合使用

    COUNT(*)  函数返回在给定的选择中被选的行数. 语法:SELECT  COUNT(*) FROM  table 使用:现在有一个表,名叫app_category,从Navicat中可以看到表中 ...

  4. 实际应用中遇到TimedRotatingFileHandler不滚动的问题

    需求: 程序每天晚上8点和10点定时运行,期望日志按日期记录 添加Handler部分代码如下: formatter = logging.Formatter("%(asctime)s %(fi ...

  5. 逻辑运算&数据

    数据在计算机中只是0和1而已 数据在我们的理论中可以无穷大,但是在计算机中并不是,毕竟硬盘是有大小的. 具体可以通过一张图来理解 例如,0-F的表示 上面是有符号数,那么无符号数则是 事实上,计算机中 ...

  6. bundles.Add( )下无法绑定后缀为min.css的文件

    1.问题描述: 在绑定css的时候,除了后缀名为.min.css的文件,在render.style()不显示外,其他的css都正常加载, 2.解决办法: 这个是我在调试了几遍之后发现的规律,然后解决办 ...

  7. Python-01 学习第一节

    python是一种解释型.面向对象.动态数据类型的高级程序设计语言. 执行Python程序: 对于大多数程序语言,第一个入门编程代码便是"Hello World!",以下代码为使用 ...

  8. JAVA读取、写入Excel表格(含03版)

    引言 工作中可能会遇到对Excel读取和写入,如果我们自己手动写的话,会很麻烦,但是Apache中有poi工具类.poi工具类封装好了对于Excel读取和写入,我们需要用的时候,直接调用该方法就好了. ...

  9. 贝叶斯来理解高斯混合模型GMM

    最近学习基础算法<统计学习方法>,看到利用EM算法估计高斯混合模型(GMM)的时候,发现利用贝叶斯的来理解高斯混合模型的应用其实非常合适. 首先,假设对于贝叶斯比较熟悉,对高斯分布也熟悉. ...

  10. 【SICP练习】151 练习4.7

    练习4-7 原文 Exercise 4.7. Let* is similar to let, except that the bindings of the let variables are per ...