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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ShenFangyu 中级黑马   /  2016-4-19 19:20  /  789 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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什么区别,应该怎么理解?

评分

参与人数 1黑马币 +20 收起 理由
Abcxyz + 20

查看全部评分

4 个回复

倒序浏览
都没有大神的么?自己顶一下
回复 使用道具 举报
加上final只能赋值一次,不加final可以多次赋值
回复 使用道具 举报
final之后.变量变成了常量,所以就不能重新复制了,但是 String c = b + 2; 这一句相当一两个字符串链接到了一起,在内存空间里面不创建新的对象,比较的是地址值,所以相等,至于后面那个,开辟了新空间,所以地址值不同
回复 使用道具 举报
加上final的变量就相当于一个变量。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马