String中的字符串链接符

来源:互联网 发布:压缩算法 pdf 编辑:程序博客网 时间:2024/06/03 12:11
package cn.com.domain;public class Test {public static void main(String[] args) {String a = "a";String b = a+"b";String c = "a"+"b";String d = "ab";System.out.println(b);//输出abSystem.out.println(b == "ab");//输出:falseSystem.out.println(c == "ab");//输出:trueSystem.out.println(b == c);//输出:falseSystem.out.println(c == d);//输出:true/* * b,c,d 三个字符串的内容是一样的,即是说如果使用equals,他们输出的是true *  * 但是这三个对象是不一样的。 * java 编译可以对字符串常量直接相加的表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,直接将其编译成一个这些常量相连的结果。 * 什么意思呢? * 就是 "a"+"b"   ---等价于--->  "ab" ;; 所以c和d是一个对象 *  * 那为什么b和c不是一个对象呢? * 因为b是由对象a和"b"通过字符串连接符链接起来的。 区别在于a已经是一个确定的对象了。 *  *  */}}

原创粉丝点击