1. StringBuffer类概述: (1)String的缺陷: 我们如果对字符串进行拼接操作,每次拼接,都会构造一个新的String对象,既耗时,又浪费空间.如下图: (2)StringBuffer弥补了String的缺陷 为了改进这个问题,而StringBuffer就可以解决这个问题. StringBuffer如何解决这个问题呢? StringBuffe第一次开辟比默认字符串大16byte的空间,然后在这16个字节字节写入被拼接的串.如果空间不够,以现有空间*2+2的方式翻一倍扩充. St…
1. 对于三者使用的总结: (1).如果要操作少量的数据用 = String               (2).单线程操作字符串缓冲区下操作大量数据 = StringBuilder (3).多线程操作字符串缓冲区下操作大量数据 = StringBuffer 2. (1)String : 指向的是一个不可改变的字符串,要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成…
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.ConcurrentHashMap可以做到读取数据不加锁,并且其内部的结构可以让其在进行写操作的时候能够将锁的粒度保持地尽量地小,不用对整个ConcurrentHashMap加锁(实际上就是对哈希表加锁). 2. ConcurrentHashMap的内部结构: ConcurrentHashMap为了提高本身…
1. String和StringBuffer的相互转换 思想是:A-----B的转换,我们把A转换为B,其实是为了使用B的功能:B-----A的转换,我们可能的结果是A类型,所以还要转换回来 2. 案例演示: package cn.itcast_07; /* * 为什么我们要讲解类之间的转换: * A -- B的转换 * 我们把A转换为B,其实是为了使用B的功能. * B -- A的转换 * 我们可能要的结果是A类型,所以还得转回来. * * String和StringBuffer的相互转换?…
1. 面试题:String,StringBuffer,StringBuilder的区别 ? 答:String是字符串内容不可变的,而StringBuffer和StringBuilder是字符串内容长度可变的:       StringBuffer是同步的,数据安全,效率低.       StringBuilder是不同步的,数据不安全,效率高. (1). 在执行速度方面的比较:StringBuilder > StringBuffer (2). StringBuffer与StringBuilder…
1. 案例演示: package cn.itcast_07; import java.util.Scanner; /* * 把字符串反转 */ public class StringBufferTest3 { public static void main(String[] args) { // 键盘录入数据 Scanner sc = new Scanner(System.in); System.out.println("请输入数据:"); String s = sc.nextLine…
1. StringBuffer的截取功能: public String subString(int Start): public String subString(int Start, int end):包含首,不包含尾 返回类型是String类型,和前面几个功能不一样,本身没有发生变化. 2. 案例演示: package cn.itcast_06; /* * StringBuffer的截取功能:注意返回值类型不再是StringBuffer本身了 * public String substrin…
1. StringBuffer的替换功能: public  StringBuffer   replace(int  start,  int  end, String  str): 2. 案例演示: package cn.itcast_04; /* * StringBuffer的替换功能: * public StringBuffer replace(int start,int end,String str):从start开始到end用str替换 */ public class StringBuff…
1. StringBuffer的删除功能: public StringBuffer  deleteCharAt(int index):删除指定位置的字符,并返回字符串缓冲区本身. public StringBuffer  delete(int start,  int end):删除从指定位置开始到指定位置结束的内容,包含左边,不包含右边,并返回字符串缓冲区本身. 2. 案例演示: package cn.itcast_03; /* * StringBuffer的删除功能 * public Stri…
1. 先看案例代码如下: package cn.itcast_07; /* * 把数组拼接成一个字符串 */ public class StringBufferTest2 { public static void main(String[] args) { // 定义一个数组 int[] arr = { 44, 33, 55, 11, 22 }; // 定义功能 // 方式1:用String做拼接的方式 String s1 = arrayToString(arr); System.out.pri…