教育改变生活

标题: Java中String字符串的比较 [打印本页]

作者: 一秉    时间: 2020-5-12 17:15
标题: Java中String字符串的比较
1、String s1 = new String("hs")和String s2 = "hs"的区别
前者会创建两个对象,后者只创建一个对象。

2、==和equals的区别
==比较的是引用类型的地址值是否相同,equals则是比较引用的内容是否相同

3、String str=null 和String str=""的区别?
String str = null 不分配内存空间, string str = "" 分配内存空间,空间大小是空字符串的大小

4、字符串如果是变量相加,先分配内存,在拼接内容;
如果是常量相加,先相加,然后在常量池中找,如果有就直接返回常量池,否则创建新的对象。
通过下列代码输出结果,理解第四点:
String s1 = new String("hello");
String s2 = "hello";
System.out.println(s1 == s2);// false
System.out.println(s1.equals(s2));// true
String s3="hello";
String s4="world";
String s5="helloworld" ;
System.out.println(s5==s3+s4);//false  
System.out.println(s5.equals(s3+s4));//true
System.out.println(s5=="hello"+"world");//true
System.out.println(s5.equals("hello"+"world"));//true






欢迎光临 教育改变生活 (http://bbs.goldoar.com/) Powered by Discuz! X3.2