黑马程序员技术交流社区
标题:
String类面试题
[打印本页]
作者:
wingtheu
时间:
2014-11-5 14:29
标题:
String类面试题
String类面试题
1.判断定义为String类型的s1和s2是否相等
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
2.下面这句话在内存中创建了几个对象?
String s1 = new String("abc");
3.判断定义为String类型的s1和s2是否相等
String s1 = new String("abc");
String s2 = "abc";
System.out.println(s1 == s2); ?
System.out.println(s1.equals(s2)); ?
4.判断定义为String类型的s1和s2是否相等
String s1 = "a" + "b" + "c";
String s2 = "abc";
System.out.println(s1 == s2); ?
System.out.println(s1.equals(s2)); ?
5.判断定义为String类型的s1和s2是否相等
String s1 = "ab";
String s2 = "abc";
String s3 = s1 + "c";
System.out.println(s3.equals(s2)); ?
作者:
渐行渐远
时间:
2014-11-5 21:51
1、true true;因为没有新建String对象,s1=“abc”存储在常量池中,s2=“abc”;发现常量池中已有"abc"就不再新建对象,s1和s2指向的是同一个对象。
2、2个,new了个s1,以及“abc”;
3、s1在堆内存中new了个对象,而s2存储在常量池中,两者的地址值不一样而内容相同,所以s1==s2 false而s1.equals(s2); true
4、s1=“a"+"b"+"c"没有创建对象而是将运算结果”abc“存储在常量池中,所以s1和s2指向的是同一对象;s1==s2 结果为true;s1.equals(s2);结果为true;
5、true
作者:
田峻菘
时间:
2014-11-5 23:34
学习了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2