/*
* 1. String,StringBuffer,StringBuilder的区别?
* A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的;
* B:StringBuffer是同步的,数据安全的,效率低的,而StringBuilder是不同步的,数据不安全的,效率高的,
* 两者都可以看作是一个容器,装其他数据。
* StringBufer什么类型都可以放,只是所有类型都变成string类型,最后是一个字符串数据
* 数组可以放多种数据,但是必须是同一种数据类型。
* 3. 形式参数:
* 基本类型:形式参数的改变不用想实际参数。
* 引用参数:引用参数的改变直接影响实际参数。
* String 作为形参传递,效果和基本类型作为参数传递时一样的。
* StringBuffer作为形参传递,除非调用方法才能影响实际参数,否则也无法影响实际参数。
*/
-
package com.gaowei_08;
-
/*
-
* 1. String,StringBuffer,StringBuilder的区别?
-
* A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的;
-
*
-
* B:StringBuffer是同步的,数据安全的,效率低的,而StringBuilder是不同步的,数据不安全的,效率高的,
-
* 2. StringBuffer和数组的区别:
-
* 两者都可以看作是一个容器,装其他数据。
-
* StringBufer什么类型都可以放,只是所有类型都变成string类型,最后是一个字符串数据
-
* 数组可以放多种数据,但是必须是同一种数据类型。
-
*
-
* 3. 形式参数:
-
* 基本类型:形式参数的改变不用想实际参数。
-
* 引用参数:引用参数的改变直接影响实际参数。
-
* String 作为形参传递,效果和基本类型作为参数传递时一样的。
-
* StringBuffer作为形参传递,除非调用方法才能影响实际参数,否则也无法影响实际参数。
-
*/
-
public
class
StringBuilderDemo {
-
public static void main(String[] args) {
-
String s1 =
"hello";
-
String s2 =
"world";
-
System.
out.println(s1+
"----------"+s2);
-
change(s1,s2);
-
System.
out.println(s1+
"----------"+s2);
-
System.
out.println(
"-------------------------------");
-
StringBuffer sb1 =
new StringBuffer(
"hello");
-
StringBuffer sb2 =
new StringBuffer(
"world");
-
System.
out.println(sb1+
"----------"+sb2);
//hello----------world
-
change(sb1,sb2);
-
System.
out.println(sb1+
"----------"+sb2);
//hello----------worldworld
-
-
}
-
-
private static void change(StringBuffer sb1, StringBuffer sb2) {
-
sb1 = sb2;
-
sb2.append(sb1);
-
-
}
-
-
private static void change(String s1, String s2) {
-
s1 = s2;
-
s2 = s1 + s2;
-
-
}
-
-
}