java中string , StringBuffer , StringBuilder 区别
2024-10-07 01:36:11
1、String
String变量的值不能改变,如果要改变String变量的值,虚拟机首先会遍历方法区中的字符串常量,如果存在需要的值,则虚拟机直接把此常量值的地址分配给String变量,如果不存在这样的值,虚拟机则会另外在方法区中划分出一块内存空间存储字符串常量,然后把这块地址赋给String变量。
因此,String类的内容声明后不可被改变,改变的只是其内存地址的指向。
2、StringBuffer
StringBuffer是使用缓冲区存储字符串对象的,对象的内容可以改变。并且是线程安全的。
StringBuffer不像String可以通过直接赋值的方式实例化,他必须通过构造方法完成实例化。
3、StringBuilder
StringBuilder跟StringBuffer是一样,字符串对象的内容可以改变,但是StringBuilder是线程不安全的。
StringBuilder不像String可以通过直接赋值的方式实例化,他必须通过构造方法完成实例化。
4、赋值
String采用+连接字符串或字符; StringBuilder或StringBuffer通过append方法连接字符或字符串。
5、StringBuffer或StringBuilder常用方法
append , insert, delete , replace , substring, indexOf(查找), reverse
最新文章
- 容器--Map和AbstractMap
- dom paser
- Oracle - 位图索引的适用条件
- ant+dbunit 导xml到mysql
- LabVIEW设计模式系列——普遍使用值改变事件
- 【转】SVN linux命令及 windows相关操作(二)
- CentOS6.5 配置防火墙+允许指定ip访问端口
- poj1573&;amp;&;amp;hdu1035 Robot Motion(模拟)
- Pip 安装 出现UnicodeEncodeError: 'ascii' codec can't encode characters in position 1-5: ordinal not in
- hdu 1098 Ignatius's puzz
- CentOS 6.4 安装setuptools 和 pip
- CCF-201403-2-窗口
- Dev中GridControl的导出Excel设置
- [转]在Windows下编译ffmpeg完全手册
- maven的pom文件中指定编译的版本
- 华为AR2811配置脚本
- LFYZ-OJ ID: 1015 统计数字(NOIP2007)
- 对mybatis的Handler 从使用角度介绍
- Windows文件系统
- Python 函数中,参数是传值,还是传引用?