新手求问简单问题 1 java中的隐藏是什么概念? 2 String 和 StringBuilder 有什么区别? 具体的麻烦了各位! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/yaganblw/archive/2011/06/09/6533691.aspx 你先去google吧,或者看书吧,不要这么问! /** * 2011-6-30 10:35:34 * @author Administrator */public class NewClass { public NewClass(){ String str="abcdefg"; String str2=str.replace("ab", "12"); System.out.println(str); System.out.println(str2); //上面两个输出,是说明,对于String,字符串的对象的内容是不能被修改的,只能生成新的对象 //str.replace这个方法并没有修改str所引用的对象的内容,而是生成了一个新的对象并返回其引用 //其实如果你观察String的源代码可以发现,它的内容的核心就是一个数组。然而,由于其内容不能改变 //而是只能生成新的内容,如果要多次修改字符串的话,效率将非常低下。比如进行N次追加操作 StringBuffer sb=new StringBuffer("abcdefg"); sb.append("1234"); //而StrinbBuffer的对象的内容,是可以被修改的 System.out.println(sb.toString()); } public static void main(String args[]){ new NewClass(); }} http://yinaje.blog.163.com/blog/static/14334020067261028310/http://blog.csdn.net/yaganblw/archive/2011/06/09/6533691.aspx http://www.cnblogs.com/beyondwcm/archive/2007/11/08/953454.html 简单的说吧,String产生的是一个常量,他的内容一经生成,就无法改变,而StringBuffer 而是一个变量,可以自由修改 String 定义的是String 类的实例化对象,一旦对象赋值成功是不可变的,如果是这样的:String str="123"; str+="456"; System.out.println(str);输出的是123456,表面上看 str是可变的,但是输出的str实际上已经不是以前的str了,他是把"123"和"456"连接成一个新的对象,然后赋值给了str。也就是说String类型的对象如果进行字符串连接的话,会重新创建对象的。而StringBuilder 定义的字符串是可变长度的。StringBuilder 定义的字符串如果进行字符串连接,不会创建出新的对象。如果是在一个大的循环里要进行字符串连接的话,还是用StringBuilder 比较好,因为他不会去创建新的对象,所以会节省很多时间。 少先队员多看看 API 把 关于long类型输出的问题 javaSE 急求:如何实现 每一项的实际长度不够额定长度就用空格填充 求正则表达式 clone()的问题,请指教 请帮我看看这个继承的例子。 帮帮忙,请问这个jList如何写呀? 如何设定文件为只读(Readonly)? JAVA对文件的操作难题 请高手帮忙调试这个有关RMI的程序!!!!!! swing中的JTextField怎么在输入的时候做ip地址校验 关于图片IO的问题
/**
* 2011-6-30 10:35:34
* @author Administrator
*/
public class NewClass {
public NewClass(){
String str="abcdefg";
String str2=str.replace("ab", "12");
System.out.println(str);
System.out.println(str2);
//上面两个输出,是说明,对于String,字符串的对象的内容是不能被修改的,只能生成新的对象
//str.replace这个方法并没有修改str所引用的对象的内容,而是生成了一个新的对象并返回其引用
//其实如果你观察String的源代码可以发现,它的内容的核心就是一个数组。然而,由于其内容不能改变
//而是只能生成新的内容,如果要多次修改字符串的话,效率将非常低下。比如进行N次追加操作
StringBuffer sb=new StringBuffer("abcdefg");
sb.append("1234");
//而StrinbBuffer的对象的内容,是可以被修改的
System.out.println(sb.toString());
}
public static void main(String args[]){
new NewClass();
}
}
如果是在一个大的循环里要进行字符串连接的话,还是用StringBuilder 比较好,因为他不会去创建新的对象,所以会节省很多时间。
多看看 API 把