首页 > 代码库 > 2016.9.20小结

2016.9.20小结

1String s = "abc";

String s = new String("abc")有什么区别?画出内存图。

通过String s = "abc"创建出来的"abc"属于字符串常量,存放于内存中的数据段。

通过String s = new String("abc")创建了一个String类型的对象,"abc"是属性,存放于内存中的堆中

 技术分享

2、String有什么特点?

String长度不可改变,当对字符串进行添加、替换、删除时,不会改变字符串的内容,而是产生一个新字符串。

3、"[3200-3500]"这样一个正则表达式。"3300"匹配吗?为什么?

3300 不会匹配,因为正则表达式[ ]中是一个字符一个字符进行匹配的。

4、StringStringBuffer有什么区别?

String创建的字符串具有长度不可变化的特性,当对字符串进行添加、替换、删除时,不会改变字符串的内容,而是产生一个新字符串。

StringBuffer是缓冲区的对象,当对StringBuffer做添加、替换、删除时,直接改变StringBuffer的内容,不会产生新的对象。

 5、说出以下代码执行结果

String a = "abc";

String b = "abc";

String c = new String("abc");

String d = new String("abc");

 

System.out.println(a == b);//true

System.out.println(c == b);//false

System.out.println(c == d);//false

 

System.out.println(a.equals(b));//true

System.out.println(a.equals(d));//true

System.out.println(b.equals(c));//true

6、说出以下代码执行结果

public static void main(String[] args) {

String s = "abcd";

StringBuffer sb = new StringBuffer("abcd");

test(s,sb);

System.out.println(s+"   "+sb);

}

 

public static void test(String s,StringBuffer sb){

s = s + "&&&";//s =

sb.append("***");

}

}

结果:abcd   abcd***

2016.9.20小结