黑马程序员技术交流社区
标题:
String类常见面试题
[打印本页]
作者:
换一个昵称
时间:
2016-5-28 00:11
标题:
String类常见面试题
* 1.判断定义为String类型的s1和s2是否相等
* String s1 = "abc";
* String s2 = "abc";
* System.out.println(s1 == s2); //true 字符串存储在方法区的常量池中,系统会现在常量池中找,有的话会直接调用
* System.out.println(s1.equals(s2)); //true equals方法比较的是两个字符窜的内容
* 2.下面这句话在内存中创建了几个对象?
* String s1 = new String("abc"); //两个 创建两个对象,一个在常量池中,一个在堆内存中
* 3.判断定义为String类型的s1和s2是否相等
* String s1 = new String("abc"); //记录的是堆内存对象的地址值
* String s2 = "abc"; //记录的是常量池中的地址值
* System.out.println(s1 == s2); //false
* System.out.println(s1.equals(s2)); //true
* 4.判断定义为String类型的s1和s2是否相等
* String s1 = "a" + "b" + "c";
* String s2 = "abc";
* System.out.println(s1 == s2); //true java中有常量优化机制
* System.out.println(s1.equals(s2)); //true
* 5.判断定义为String类型的s1和s2是否相等
* String s1 = "ab";
* String s2 = "abc";
* String s3 = s1 + "c";
* System.out.println(s3 == s2); //false
* System.out.println(s3.equals(s2)); //true
作者:
zhenying.wang
时间:
2016-5-28 00:40
最后一个是false是何解?
作者:
zhenying.wang
时间:
2016-5-28 00:41
最后一个是false是何解?
作者:
换一个昵称
时间:
2016-5-28 00:46
zhenying.wang 发表于 2016-5-28 00:41
最后一个是false是何解?
最后一个是在堆内存中创建一个字符串对象
对象会从s1中拿到一个"ab"副本
通过字符串缓冲区生成"abc"赋地址值给s3
作者:
feey
时间:
2016-5-28 22:46
谢谢分享
作者:
haojingwei310
时间:
2016-5-28 23:47
良心贴吧啊.谢谢
作者:
z736886202
时间:
2016-5-29 00:35
谢谢分享楼主好人啊
作者:
坂田银时
时间:
2016-5-29 06:42
谢楼主分享啊
作者:
zhglyxgs
时间:
2016-5-29 10:50
感谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2