那为什么c3==c2是false呢
追答这个就是真正意义上的面向对象了,以及对“==”的理解,你看着c3和c2长得一模一样,拥有相同的值,但是他们是同一个对象的不同实例,他们在内存中是不同的东西,而==比较的就是两个实例在内存中的地址,只有像c3 = c1这种方式让两个实例在内存中地址也相等,==才会为true。所以在比较两个对象是否相等时,不能简单地使用==比较,最好是重写equals()方法,使用它进行比较。你可以再看下下面我写的例子,其中s4和s5比较特殊,这种字符串的定义,是在java的JVM的栈中直接将地址指向"1",所以s4和s5是==的。
谢谢谢谢