标签:String bu2 StringBuilder System println out
StringBuilder的原理
字符串是常量;它们的值在创建之后不能更改 字符串的底层是一个被final修饰的数组 不能改变 是一个常量
进行字符串的相加 内存中就会有多个字符串 占用空间多 效率低下
如:
而StringBuilder是字符串缓冲区 可以提供字符串的操作效率(看成一个长度可以变化的字符串)
底层也是一个数组 但是没有被final修饰 可以改变长度
StringBuilder在内存中始终是一个数组 占用空间少 效率高 如果超出了StringBuilder的容量 会自动扩容
StringBuilder的使用
构造方法
1.public StringBuilder();构造一个空的StringBuilder容器
2.public StringBuilder(String str);构造一个StringBuilder容器 并将字符串添加进去
代码:
public static void main(String[] args) {
//构造一个空的StringBuilder容器 也是无参构造方法
StringBuilder bu1 = new StringBuilder();
System.out.println("bu1"+bu1);
//构造一个StringBuilder容器 并将字符串添加进去 也是有参构造方法
StringBuilder bu2 = new StringBuilder("abc");
System.out.println("bu2"+bu2);
}
运行结果:
成员方法
1.public StringBuilder append(...);添加任意类型数据的字符串形式 并返回当前对象自身
代码:
public static void main(String[] args) {
StringBuilder bu1 = new StringBuilder();
//添加任意类型数据的字符串形式 并返回当前对象自身
StringBuilder z = bu1.append("张三");//添加String类型的数据
System.out.println(bu1);
System.out.println(z);
System.out.println(z==bu1);//true 说明两个地址值是一样的
System.out.println("-----------------------------");
//使用append无须接收返回值了 因为它最后返回的是它本身
StringBuilder bu2 = new StringBuilder();
bu2.append("abc");
bu2.append(true);
bu2.append(0.0);
bu2.append(10);
bu2.append('国');
System.out.println(bu2);
}
运行结果:
2.public String toString();将当前StringBuilder对象转换为String对象
代码:
public static void main(String[] args) {
//将当前StringBuilder对象转换为String对象
StringBuilder sb = new StringBuilder("abcdef");
String s = sb.toString();
System.out.println(s);
System.out.println(s==sb);
}
标签:String,bu2,StringBuilder,System,println,out 来源: https://www.cnblogs.com/aimz01/p/16445594.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。