首页 java基础 String内存地址不一样

String内存地址不一样

private static final String MESSAGE = “taobao”; public stati…

private static final String MESSAGE = "taobao";

public static void main(String[] args) {
    String a = "taobao";
    String b = "tao";
    String c = "bao";
      System.out.println(a == MESSAGE);
    System.out.println((b+c) == MESSAGE);//为什么这个是false?
}

 

true

false

为什么 这两个不同呢。。

 

 

在做字符串的连接的时候往往是开辟一个新内存空间,

把bc的值复制过去连接,

所以b+c的地址跟a的地址是不一样的,

而给a赋值的时候,

内存中已经有一个区域是taobao了,

所以就直接引用过去了。另,如果后文对a的值进行修改,

过程也是先新分配空间在把a的指向改过去,

而不是在a所指向的原有空间中进行直接修改

 

 

 

如果 用 的是 equals   比 的就是 值  这就相同了

 

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

26个大小写字母对应的哈希值

26个大小写字母对应的哈希值

大写字母: 小写字母 A 对应的哈希值:65 B 对应的哈希值:66 C 对应的哈希值:67 D 对应的哈希值:68 E...
linux 把文件名字写入到txt

linux 把文件名字写入到txt

1、首先连接上linux主机,进入到需要处理的目录,例如“/”目录。   2、输入:ls -1 > 1....
git 流程开发

git 流程开发

前提条件:不能在 master 分支上修改任何文件。master 分支的变更只能通过 git pull 和 git me...
使用Git将本地文件提交到远程仓库

使用Git将本地文件提交到远程仓库

使用Git将本地文件提交到远程仓库 使用Git将本地文件提交到远程仓库 现在要将本地代码推到git远程仓库保存,可以提交...
将博客搬至CSDN

将博客搬至CSDN

将博客搬至CSDN
返回顶部