黑马程序员技术交流社区

标题: final修饰String类型求助 [打印本页]

作者: ShenFangyu    时间: 2016-4-19 19:20
标题: final修饰String类型求助
public static void demo() {
                        String a = "hello2";
                        final String b = "hello";
                        String d = "hello";
                        String c = b + 2;
                        String e = d + 2;
                        System.out.println((a == c));//true  ???
                        System.out.println((a == e));//false  ???
加上final和不加final什么区别,应该怎么理解?
作者: ShenFangyu    时间: 2016-4-20 22:37
都没有大神的么?自己顶一下
作者: 泪无痕    时间: 2016-4-21 00:08
加上final只能赋值一次,不加final可以多次赋值
作者: zhaoch    时间: 2016-4-21 11:13
final之后.变量变成了常量,所以就不能重新复制了,但是 String c = b + 2; 这一句相当一两个字符串链接到了一起,在内存空间里面不创建新的对象,比较的是地址值,所以相等,至于后面那个,开辟了新空间,所以地址值不同
作者: haitao    时间: 2016-4-21 12:35
加上final的变量就相当于一个变量。




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