黑马程序员技术交流社区

标题: 8.11 String比较方法练习; [打印本页]

作者: jw在路途    时间: 2014-8-11 21:20
标题: 8.11 String比较方法练习;
/*  这是今天的练习代码,理解透彻,甚是满足,分享一下...见笑了
   String类比较方法的练习:
   字符串特点:  一旦被赋值就不可改变(指的是字符串的内容,常量池的常量)。 引用可           以改变。
*/
public class StringDemo2 {
        public static void main(String[] args) {
                String s1 = new String("hello");
                String s2 = new String("hello");
                System.out.println(s1 == s2); // false 比较的是s1s2的地址值
                System.out.println(s1.equals(s2)); // true 比较的是s1s2的成员值
                String s3 = new String("hello");
                String s4 = "hello";
                System.out.println(s3 == s4); // false  比较的是s3s4的地址值
                System.out.println(s3.equals(s4));// true 比较的是s3s4的成员值
                String s5 = "hello";
                String s6 = "hello";
                System.out.println(s5 == s6);// true  比较的是s5s6的地址值
                System.out.println(s5.equals(s6));// true 比较的是s5s6的成员值
                String s7 = "hello";
                String s8 = "world";
                System.out.println(s7 == s8);// false 比较的是s7s8的地址值
                System.out.println(s7.equals(s8));// false  比较的是s7s8的成员值
               
                String ss1 = "hello";
                String ss2 = "world";
                String ss3 = "helloworld";
                System.out.println(ss3.equals(ss1 + ss2));// true
                // 如果是字符串变量相加,先开空间,再相加存储。
                // 如果是字符串常量相加,先加,在常量池里面找,如果有就返回常量池里面的地址。否则,就创建新的存储空间。
                System.out.println(ss3 == ss1 + ss2);// false   两个变量相加,开辟一个新空间,再找值。地址值改变。
                System.out.println(ss3 == "hello" + "world"); // true 两常量想加,ss3指向常量池中已有的数值。地址值不变。
        }
}
图片:



作者: Bule丶    时间: 2014-8-11 21:29
很好,继续努力
作者: 冷锋也温柔    时间: 2014-8-11 22:26
0725班的??

作者: sdfe    时间: 2014-8-11 22:35
讲得好全啊。还配了图。学习了。
作者: jw在路途    时间: 2014-8-11 22:55
冷锋也温柔 发表于 2014-8-11 22:26
0725班的??

你是0725的?呵呵
作者: 席杰    时间: 2014-8-11 22:56
学习了,谢谢楼主




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2