php 有 stringbuffer,String、StringBuffer、StringBulider三者介绍
三者都实现了CharSequence接口,因此CharSequence可认为是一个字符串的协议接口
1.String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁;
我们常常定义的时候 String str=new String("定义了我");
str=“改变了我”;
输出是改变了我,好像是Str已经改变了,其实是改变了str的指向,原来堆内存里的对象成为了垃圾
2.StringBuffer类
StringBuffer代表一个字符序列可变的字符串,当一个StringBuffer建立以后,通过inser()、appen()、reverse()、serChaAt()、setLength()方法可以改变这个字符串,最终生成以后,可以通过toString()方法转换为一个String对象
3.StringBuilder是JDK1.5新增的,也代表字符串对象,和StringBuffer相似,两个类的构造器和方法也基本相同,当时StringBuffer是线程安全的,StringBulider没有实现线程安全,所以性能略高。因此,如果创建一个字符可变的字符串对象,则应该优先考虑StringBuilder类
比较
1.执行速度方面三者有如下关系:
StringBuilder>StringBuffer>String;
2.:一、长度都是可扩充的;二、StringBuffer是线程安全的,StringBuilder是线程不安全的。那么他们的长度是如何实现动态扩充以及StringBuffer的线程安全是如何实现的呢?
三者都实现了CharSequence接口,因此CharSequence可认为是一个字符串的协议接口
StringBuffer里面所有的方法除了构造方法以外都由synchronized限定
它们两个可扩展长度则是通过ensureCapacity(int minimumCapacity)来验证当前长度是否小于参数minimumCapacity,如果成立则进行分配空间。分配新空间的步长为(当前长度+1)的两倍。
php 有 stringbuffer,String、StringBuffer、StringBulider三者介绍相关推荐
- String StringBuffer StringBuilder区别与联系
String StringBuffer StringBuilder String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量 ...
- String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力. 首先,说一下目前我还没进行整理的情况下,我的理解: String 不可修改 修改后相当于又新创建创建一个字符串 比如: String a = "abc&qu ...
- String,StringBuffer与StringBuilder的区别??
2019独角兽企业重金招聘Python工程师标准>>> String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全 ...
- Java String,StringBuilder和StringBuffer的区别 StringBuilder StringBuffer String
可以证明,字符串操作是计算机程序设计中最常见的行为. String:不可变的对象,对String对象进行改变的时候其实都等同于生成了一个新的String对象,然后将引用指向新的String对象,原St ...
- String, StringBuffer, StringBuilder(转载)
http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuil ...
- String,StringBuffer,StringBuilder区别
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简 要的说, String 类型和 StringBuffer 类型的 ...
- String,StringBuffer与StringBuilder的区别?
http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuil ...
- String,StringBuffer与StringBuilder的区别以及String为什么是不可变的?
String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要 ...
- String,StringBuffer,StringBulider 三者的区别
1.String 是字符串常量,StringBuffer 和StringBuilder 是字符串变量. 2.运行速度 StringBuilder > StringBuffer > Stri ...
最新文章
- 青少年编程竞赛交流群周报(第040周)
- AI复原上海民国名媛影像!1929年的小姐姐,时装精致不输现在
- 语言模型“不务正业”做起目标检测,性能还比DETR、Faster R-CNN更好 | Hinton团队研究...
- 怎样学会科学的调研并启动一个项目
- Myeclipse中快速插入HttpServlet子类中doGet和doPost方法
- PMP之项目整合管理---各种工具与技术
- 电大计算机应用基础网考小抄,电大计算机应用基础网考资料小抄.doc
- [读书笔记]Ajax的通信方式 (一)
- 解决办法:GTK+ 2.x symbols detected
- 【2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) E】Cops And Roobers【最小割】
- c51语言跑马灯键盘程序,单片机按键控制跑马灯程序
- BS架构与CS架构的区别(最详细)
- 如果本地连接受限或无连接的解决方法
- 【剖析 | SOFARPC 框架】系列之SOFARPC序列化比较
- 作业中关于H5中动画的实现——animation
- High Availability for the HDFS Namenode
- 安装xmanager linux系统,xmanager linux版
- C++Primer(5th) Notes - 2.1 基本内置类型
- SEBASTIEN KWOK 2022春夏系列发布
- windows10批量修改文件后缀名
热门文章
- 构建和运行Java 8支持
- 调查内存泄漏第2部分–分析问题
- 将亚型多态性与通用多态性相关联的危险
- 业务活动监视器(BAM)2.0带来的革命
- 什么是Spring Integration?
- OSGI –模块化您的应用程序
- Cajo,用Java完成分布式计算的最简单方法
- Linux 下如何查找 MySQL 数据库的数据根目录呢?
- java 网络编程 方式_JAVA网络编程
- lisp文字上标源码_创建文本/标注样式源码 - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...