-
Java连载75-StringBuffer和StringBuilder
一、StringBuffer和StringBuilder
1.StringBuffer是什么?
答:是一个字符串缓冲区,工作原理:预先在内存中申请一块空间以容纳字符序列,如果预留的空间,则进行自动扩容,以容纳更多的字符序列。
2.StringBuffer\StringBuilder和String最大的区别
String是不可以变的字符序列,存储字符串常量池中
StringBuffer底层是一个char数组,但是该char数组是可以变的,并且可以自动扩容
3.StringBuffer和StringBuilder的默认初始化容量是16
4.如何优化StringBuffer和StringBuilder
最好在创建StringBuffer之前,预测StringBuffer的存储字符数量,然后再创建StringBuffer的时候采用指定初始化容量的方式创建StringBuffer,为了减少底层数组的拷贝,提高效率。
5.StringBuffer和StringBuilder的区别?
StringBuffer是线程安全的,即可以在多线程的环境中使用,是安全的。
StringBuilder是非线程安全的,即在多线程的环境中使用这个类可以会出现问题。
package com.bjpowernode.java_learning; public class D75_1_StringBufferAnalysis { public static void main(String [] args) { //创建字符串缓冲区对象 StringBuffer s1 = new StringBuffer();//16//这个类的参数里面可以传入整数,代表初始化多大的空间,如果不写,默认就是16 //可以向StringBuffer中追加字符串 String[] ins = {"Physical","music","sleep","gourmet"}; //推荐字符串频繁拼接使用StringBuffer和StringBuilder,不要使用String for(int i =0;i<ins.length;i++) { if(i==ins.length-1) { s1.append(ins[i]); }else { s1.append(ins[i]); s1.append(","); } } System.out.println(s1); } }
二、源码:
D75_1_StringBufferAnalysis.java
https://github.com/ruigege66/Java/blob/master/D75_1_StringBufferAnalysis.java
出 处:https://www.cnblogs.com/ruigege0000/p/12210671.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置