• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Nobody

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Java中String类的值在创建后不可修改问题

在java中对于String类型字符串的值一旦创建后就不可更改的问题,对于刚入门的小伙伴难以理解,明明我就把string的值改变了呀,为什么说不能修改呢?

String a ="hello";String b = "java";a = a + b;

a的输出结果为 hellojava,a的值明明就改变了。

事实上String对象内容的改变是通过内存地址的改变来完成的,而其对象本身内容没有改变。
如图:

那么怎么验证呢?

      public class demo01 {
          public static void main(String[] args)  {
              String a ="hello";
              System.out.println(System.identityHashCode(a));
              String b = "java";
              System.out.println(System.identityHashCode(b));
              a = a + b;
              System.out.println(System.identityHashCode(a));
          }
      }

象的地址并不一定样,说明a=a+b;后a的地址已经变了,不再指向原来的地址。

posted on 2020-05-15 21:48  A_Nobody  阅读(962)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3