黑马程序员技术交流社区
标题:
String类的常见面试题
[打印本页]
作者:
zhiguoguo
时间:
2015-12-20 23:27
标题:
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 == s2);
* System.out.println(s3.equals(s2));
作者:
DayBreak
时间:
2015-12-21 21:14
第一题 True true 第二题 2个 一个字符串在常量池 一个在栈内存对象
第三题 false true
作者:
ROSSIN
时间:
2015-12-21 21:32
2. 创建两个对象
作者:
dg216888
时间:
2015-12-21 22:35
第一题ture ture
“abc“放在常量池,并不会改变地址,而== 是判断地址是否相等
equals是比较内容是否相同
作者:
dg216888
时间:
2015-12-21 22:36
第二题:两个
常量池中的”abc“和堆内存中的new String
作者:
dg216888
时间:
2015-12-21 22:39
第三题:false ; ture
首先s1 中的”abc“指向的是new String;
而s2中的”abc“是直接从常量池中拿的,
s1指向的是new String 的地址
s2是”abc“在常量池中的地址
作者:
dg216888
时间:
2015-12-21 22:43
第四题:true true
”a“ + ”b“ + "c"和”abc“是一样的效果
作者:
dg216888
时间:
2015-12-21 22:46
第五题:false true
s3用到了s1的new String对象,所以地址值必然是指向s1的, 地址值是不同的
而字符串的内容是可以这样拼接比较的。equals比较内容为true
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2