【3】StringBuilder 字符缓冲区 和String比较 两个构造器 append toString reverse

StringBuilder

java.lang.StringBuilder 字符串缓冲区,可以提高字符串的效率

String类:

String是字符串常量,,它们的值在创建后不能更改

字符串底层是一个被final修饰的数组,不能改变,是一个常量 private final byte [] value

               字符串的相加,内存中就会有多个字符串,占用空间,效率低下

             如:String s="a"+"b"+"c"="abc"

                "a" "b" "c" 3个字符串

               "a" +"b"   "ab" 1个字符串

              "ab"+“c”    1个字符串    5个字符串 浪费空间

 StingBuilder:

字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以改变的字符串)

底层也是一个数组,但是没有被final修饰,可以改变长度

byte[] value = new byte[16];

"a"+"b"+"c"="abc"

0-15的数组,里面填入 a b c 

StringBuilder在内存中始终是一个数组,占用空间小,效率高

如果超出了StringBuilder的容量,会自动的扩容

StringBuilder的构造器

                 /*
		  * StringBuilder有两个构造器
		  * public StringBuilder():构造一个空的StringBuilder容器。
		  * public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
		  * */
		StringBuilder s = new StringBuilder();//空参
		System.out.println(s);
		StringBuilder ss = new StringBuilder("abc");//有参
		System.out.println(ss);

StringBuilder的成员方法

append :

                /*
		 * public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
		 * 返回当前对象自身:用此方法,不用考虑接收类型,永远是自己本身
		 * */
		StringBuilder sss = new StringBuilder();
		sss.append("abv");
		sss.append(2);
		sss.append(3.2);
		System.out.println(sss);

toString

                /*
		 * public String toString():将当前StringBuilder对象转换为String对象。
		 * 
		 * String----->StringBuilder 直接是使用构造器 StringBuilder s = new StringBuilder(String str)
		 * StringBuilder---->String 使用StringBuilder里的toString 方法
		 **/
		String a="hello";
		StringBuilder sa = new StringBuilder(a);//将String类型的a转换成了StringBuilder类型
		sa.append("world");
		System.out.println(sa);
		
		String string = sa.toString();//将stringBUilder类型转换成了String类型
		System.out.println(string);

reverse

                /*
		 * reverse  将StringBuilder里的内容全部翻转过来
		 * */
		StringBuilder saa = new StringBuilder("helloWorld");
		StringBuilder reverse = saa.reverse();
		System.out.println(reverse);

猜你喜欢

转载自blog.csdn.net/dyt998/article/details/112685158