黑马程序员技术交流社区
标题:
String常见的问题
[打印本页]
作者:
hezhipengzipp
时间:
2016-3-8 22:38
标题:
String常见的问题
* 1.判断定义为String类型的s1和s2是否相等
* String s1 = "abc";
* String s2 = "abc";
* System.out.println(s1 == s2); (true)
* System.out.println(s1.equals(s2)); (true)
* 2.下面这句话在内存中创建了几个对象?
* String s1 = new String("abc"); //如果方法区常量池没有,则创建两个对象,堆内存和常量池,否则只有一个,在常量池
* 3.判断定义为String类型的s1和s2是否相等
* String s1 = new String("abc");
* String s2 = "abc";
* System.out.println(s1 == s2); (false) //s1地址值是指堆内存,s2地址值在方法区常量池
* 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) //字符串是常量相加,是先相加,然后在常量池找,如果有,就返回地址值,否则就创建
* 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.equals(s2)); (true)
* System.out.println(s3 == s2); (false) //字符串是变量相加,是先开空间,再拼接)
作者:
ccyabc
时间:
2016-3-9 10:24
String比较特殊,就是8种基本类型 ,本身也是一个类 ,既然是类,那么只要new对象就会开辟一块新地址,所以一般比较时会用歪equils方法进行比较
作者:
友人A
时间:
2016-3-9 12:26
学习一下。好像明白了是怎么回事了。谢谢楼主。
作者:
liu1097974712
时间:
2016-3-9 12:58
。。。66666
作者:
shiax11
时间:
2016-3-9 13:50
6666666666666666666666666666666666
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2