- class StringDemo
- {
- public static void main(String[] args)
- {
- String a = "my";
- String b = "name";
- String c = a + b;
- String d = "myname";
- if(c == d)
- System.out.println("c==d");
- else
- System.out.println("c!=d");
- }
- }
复制代码 你里面的c==d比较的是c和d在内存中的地址值,这两个刚开始的时候都会在常量池中生成这两个常量,然后把这两个常量的地址值赋给c和d,c,d这两个地址是不一样的因此肯定不一样的,这是字符串的一个特性,不像数字那样直接比较的是大小,如果要比较字符串的具体内容,就要用到equals 也就是c.equals(d)
|