JAVA学习笔记19——String2_StringBuilder

最近在看JAVA教学的视频,觉得老师讲的很好,同时借用源代码还有笔记来撰写本系列博客,记录自己的学习内容,同时也供看到的人学习。

上一篇介绍的是String类,大家可以发现String类虽然很基础很重要但是由于其不可变字符序列的本质,灵活度却很低,本篇来介绍一个非常实用的类——StringBuilder类,来大幅度提高对String操作的效率。

StringBuilder是一种操作可变字符序列的类,其append等多个方法都能是在实际编程中非常常用的方法,和上篇介绍的方式一样,关于方法注意事项或者细节方面的知识直接在代码中体现。

同时想说的是现在看教学视频老师都是大量地引导学生通过Eclipse看JDK源码,尤其是array类还有String、StringBuilder类这些很基础重要或者实用的类,要多多看源码。关于如何在Eclipse下设置并查看JDK源码(JDK版本要新,最低6.0的),请参考如下网址:请点击此处进入:http://blog.csdn.net/bruce128/article/details/6887732

接下里,就是喜闻乐见的上代码环节:

/**
 * 测试可变字符序列。StringBuilder(线程不安全,效率高),StringBuffer(线程安全,效率低)
 * String:不可变字符序列
 */
public class Test01 {
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder();   //字符数组长度初始为16
		StringBuilder sb1 = new StringBuilder(32);   //字符数组长度初始为32
		StringBuilder sb2 = new StringBuilder("abcd");   //字符数组长度初始为32, value[]={'a','b','c','d',\u0000,\u0000...}
		sb2.append("efg");  //append:累加,把要拼接的全都转为字符串型接到后面;把efg加到abcd后边,没有new新的字符串的过程,所以StringBuilder是可变字符序列。
		sb2.append(true).append(321).append("随便");   //每次通过return this返回更改后的sb2,然后再调用append方法···以此实现方法链,一次性连接多个,非常实用!
		System.out.println(sb2);
		//上篇笔记里面的那个例子
		StringBuilder gh = new StringBuilder("a");  //此时数组(char[] value,具体见源码)长度为16+1=17,数组一旦建立就不能变了,那么后面的1000能装下吗?
		for (int i = 0; i < 1000; i++) {
			gh.append(i);  //append方法里面有一个ensurecapacity方法,这个方法里面调用了expendcapacity方法,里面会建立一个新数组,长度=原数组*2+2(JDK规定),然后把老数组的内容全部复制进去,然后再添加新的数组成员,最后把老数组回收掉,其实不是真正的扩容,这是JAVA容器的一种性质,要理解!
		}
		System.out.println(gh);
	}
}
public class Test02 {
	public static void main(String[] args) {
		StringBuilder sb = new StringBuilder("abcdefghijklmnopqrstuvwxyz");
		sb.delete(3, 5).delete(3, 5);   //delete方法:也可以通过return this实现方发链,删除数组里面索引号为 形参1 到形参2 之间的所有数组成员,包含形参1,不包含形参2。结果:abchijklmnopqrstuvwxyz
		System.out.println(sb);
		sb.reverse();  //反转,倒序输出。
		System.out.println(sb);
		StringBuffer sb2 = new StringBuffer();   //StringBuffer的用法几乎和StringBuffer一样,涉及到多线程问题。后续再说。
	}
}
这两篇笔记内容较少主要是因为有大量看JDK源码的过程,无法用文字来表述,我们大家以后想学好JAVA就都要勤看JDK源码,Eclipse下的JDK源码查看是只读的,无法修改,打开源码的class文件之后按F4可以将方法列表显示在界面的左下角,通过相关选项可以查看继承等信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值