字符串缓冲区 |
您所在的位置:网站首页 › stringbuffer容量大小 › 字符串缓冲区 |
字符串缓冲区
在学习String类时,API中说字符串缓冲区支持可变的字符串,什么是字符串缓冲区呢?接下来我们来研究下字符串缓冲区。 查阅StringBuffer的API,线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。 原来StringBuffer是个字符串的缓冲区,即就是它是一个容器,容器中可以装很多字符。并且能够对其中的字符进行各种操作。 StringBuffer基本使用StringBuffer的特点: 1、是一个字符串缓冲区,其实就是一个容器。 2、长度是可变,任意类型都行。注意:是将任意数据都转成字符串进行存储。 3、容器对象提供很多对容器中数据的操作功能,比如:添加,删除,查找,修改。 4、所有的数据最终变成一个字符串。 创建一个字符串缓冲区对象。用于存储数据。 StringBuffer sb = new StringBuffer(); 添加数据。不断的添加数据后,要对缓冲区的最后的数据进行操作,必须转成字符串才可以。 String str =sb.append(true).append("hehe").toString(); sb.append("haha"); //添加字符串 sb.insert(2, "it");//在指定位置插入 sb.delete(1, 4);//删除 sb.replace(1, 4, "cast"); StringBuffer的练习 缓冲区的应用:无论多少数据,什么类型都不重要,只要最终变成字符串就可以使用StringBuffer这个容器 练习:int[] arr ={34,12,89,68};将一个int[]中元素转成字符串 格式 [34,12,89,68] public static String toString_2(int[]arr) { StringBuffer sb = new StringBuffer(); sb.append("["); for (int i = 0; i < arr.length;i++) { if(i!=arr.length-1){ sb.append(arr[i]+","); }else{ sb.append(arr[i]+"]"); } } return sb.toString(); } StringBuffer和StringBuilder区别 查阅API发现还有一个StringBuilder类,它也是字符串缓冲区,它和StringBuffer的区别是什么呢? 阅读StringBuilder的API说明发现,一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。 原来StringBuilder是线程不安全的,即就是在对容器操作的时候,不用去判断同步锁的问题,那么效率就高。并且API告诉我们优先采用StringBuilder类。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |