String ,StringBuilder,StringBuffer
一.String类使用字符数组保存字符串,数组有final修饰,不可变.线程安全
String a="hello";String b=new String("hello");
第一种在栈内存定义了一个a对象的引用,指向堆内存的值"hello"的内存地址
第二种先在栈内存创建一个"hello"对象,new String又产生了另外一个对象.第一个对象无人引用
上图的解释:String在Java中使用了共享设计,在Java形成一个对象池,这个对象池可以保存多个对象,如果新实例化的对象已经在对象池中存在,就不在重复定义,直接从 对象池中取出使用。
二.StringBuilder类继承AbstractStringBuilder,底层也是字符数组保存字符串,可变.线程不安全
//无参构造,默认长度16的字符数组
public StringBuilder() {
super(16);
}
//带参数的构造函数
public StringBuilder(String str) {
super(str.length() + 16);
append(str);
}
//没有实现同步
public StringBuilder append(String str) {
super.append(str);
return this;
}
三.StringBuffer类继承AbstractStringBuffer,底层也是字符数组保存字符串,可变.线程安全
//无参构造,默认长度16的字符数组
public StringBuffer() {
super(16);
}
//带参数的构造函数
public StringBuffer(String str) {
super(str.length() + 16);
append(str);
}
//和StringBuilder的区别就是同步
public synchronized StringBuffer append(String str) {
super.append(str);
return this;
}
四.总结:
1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
转载于:https://www.cnblogs.com/2nao/p/6507571.html
String ,StringBuilder,StringBuffer相关推荐
- String StringBuilder StringBuffer三者之间的区别~~~
String StringBuilder StringBuffer三者之间的区别~~~ String是字符串常量,它是典型的immutable类,被声明final class,所有的属性都是fina ...
- String ,StringBuilder,StringBuffer的区分
String ,StringBuilder,StringBuffer的区分 一.区别 String是字符串常量,而StringBuffer和StringBuilder是字符串变量.由String创建的 ...
- Java 集合 --- String, StringBuilder, StringBuffer
Java 集合 --- String, StringBuilder, StringBuffer String String的声明方式 String的不可变性 对比两个String StringBuil ...
- String StringBuilder StringBuffer 包装类 Date 类 枚举类
String,StringBuilder,StringBuffer直接的区别是: String 不可变长的字符序列 StringBuilder 可变长的字符序列,线程不安全的,效率较高 StringB ...
- String,Stringbuilder,Stringbuffer及正则表达式
掌握String StringBuilder StringBuffer类的区别 一.String String是不可变类,一旦String对象被创建之后,包含对象中的字符串序列都是不可改变的,直到类被 ...
- String , StringBuilder , StringBuffer
String 首先从String底层看起 从底层代码被final修饰,我们能看出来,String是只读字符串,他的成员方法也都默认为final方法.所以String所引用的字符串内容不能被改变 Str ...
- String StringBuilder StringBuffer 对比 总结得非常好
转自:http://www.iteye.com/topic/522167 作者:每次上网冲杯Java时,都能看到关于String无休无止的争论.还是觉得有必要让这个讨厌又很可爱的String美眉,赤裸 ...
- String/Stringbuilder/StringBuffer
三个的运行速度:Stringbuilder>Stringbuffer>String String最慢是因为它是字符串常量,而其他两个是字符串变量. 其中stringbuilder是非线程安 ...
- stringbuffer常用方法_Java 处理字符串常用的类:String StringBuilder StringBuffer
在Android/Java开发中,用来处理字符串常用的类有3种: String.StringBuilder.StringBuffer. 它们的异同点: 1) 都是 final 类, 都不允许被继承; ...
- String StringBuilder StringBuffer
1,String 是不可变类 immutable 不可变类:所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值.如JDK内部自带的很多不可变类:八大包装类和String等. ...
最新文章
- android6.0 主题,Android 6.0 DatePickerDialog主题
- 关于ARM Cortex系列产品
- Linux之压缩与解压缩
- crawler_x-requested-with 请求头
- php正则获取标签,PHP通过正则匹配中文字符 过滤html标签 获取文本内容
- 使用SQLyog连接MySQL数据库
- Navicat工具怎么连接oracle数据库
- POJ 1947 Rebuilding Roads
- python分词原理_结巴分词原理
- 9小时速返地球!刚刚,神舟十三号返回舱平安降落,三位航天员“感觉良好”...
- 计算机键盘英语,电脑键盘打字时中英文如何切换?
- 强力推荐一款游戏十分好玩
- selenium页面跳转问题-QQ邮箱登录之后找不到元素
- 学习记录 - - 准备APS
- 支付宝支付(详细版)
- Keil 中“last line of file ends without a newline”的解决
- 写代码神器,自费送!
- okhttp https ip直连设置Host
- 微信小程序 —— 瀑布流简单写法(css3属性加wx:if判断轻松实现)
- 基于Java实现简单的在线 OJ 系统
热门文章
- Android中AVD(Android Virtual Device)不能启动的处理方法
- 模拟器显示屏上方的信号和电池图标不显示设置
- Building Seam 2.0 Application with NetBeans 6.1
- kafka丢数据问题方案(转载+整理+汇总)
- mariadb设置root初始密码
- scipy实现的共轭梯度法以及相关原理图解
- RabbitMQ 队列消息持久化
- 腾讯实习笔试:关于几个有序数组求交集的问题
- 求栈的长度的C语言函数,c – 编译器如何确定编译器生成的临时函数所需的堆栈大小?...
- 【蓝桥杯真题】地宫取宝(搜索-记忆化搜索详解)