A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jw在路途 中级黑马   /  2014-8-11 21:20  /  1600 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*  这是今天的练习代码,理解透彻,甚是满足,分享一下...见笑了
   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指向常量池中已有的数值。地址值不变。
        }
}
图片:


评分

参与人数 2技术分 +1 黑马币 +5 收起 理由
a5702727 + 5
格子、 + 1 神马都是浮云

查看全部评分

5 个回复

倒序浏览
很好,继续努力
回复 使用道具 举报
0725班的??
回复 使用道具 举报
讲得好全啊。还配了图。学习了。
回复 使用道具 举报

你是0725的?呵呵
回复 使用道具 举报
学习了,谢谢楼主
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马