zoukankan      html  css  js  c++  java
  • String 为什么是不可变的

    什么是不可变的:就是说一个对象在创建完成后,不能再改变它的状态即这个对象是不可变的。

    不能改变状态的意思是不能改变对象内的成员变量。包括基本类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。

    例如:

    String s = "123";
    System.out.println("s = " + s);
    
    s = "456";
    System.out.println("s = " + s);

    打印结果为:s=123 s=456
    表面看上去 s 的值变了 实际上 s只是一个引用。只是引用发生了变化。
    也就是说,s只是一个引用,它指向了一个具体的对象,当s=“123”; 这句代码执行过之后,又创建了一个新的对象“456”, 而引用s重新指向了这个新的对象,原来的对象“123”还在内存中存在,并没有改变。直到对象“123”被销毁。
    内存结构如下图所示:

    String的成员变量是private final 的,也就是初始化之后不可改变。

    更深入就需要去看string 的定义了,string是final类型不可继承 不可改变。

    
    
  • 相关阅读:
    自定义转化
    asp.net JSON(一)
    做一个会偷懒的码农
    活动和监视器
    linq 分组求和
    sql语句查询列的说明
    chartControl
    LayOutControl
    sql 给表结构增加说明
    我的单件模式
  • 原文地址:https://www.cnblogs.com/zjf6666/p/6405943.html
Copyright © 2011-2022 走看看