• JAVA中对象赋值以及前拷贝,深拷贝等~~


    今天在把 VLC 的代码转成 JAVA的过程中,遇到了一个让我困惑的问题

    对象间的赋值到底是怎样的

    就以前我的了解,JAVA的参数传递看似是引用传递,其实也是值传递,是把对象的地址拷贝后赋给 函数的参数,例如

    void set(object a1){

      a1.set("  hello");

      a1=new Object(" world");

    }

    在这里原来的对象只执行了第一布,而第二步没有执行。因为new 命令把新的地址给了a1,a1和函数的传入参数的地址已经彻底没有关系了。

    另外,JAVA中的对象赋值都是浅拷贝,也就是两个对象共同拥有同一个值,一个对象改变了这个值另外一个对象也会跟着改变。

    如果要进行深拷贝,在C++中是重载运算符“=”,拷贝构造函数和clone方法。

    具体可参照clone方法~

  • 相关阅读:
    换个格式输出整数
    c++入门构造函数
    接口继承与实现
    spring mvc 之@requestmapping
    RabbitMQ
    Socket通信原理
    TCP三次握手与四次挥手
    WIN 10家庭版没有Hyper-V
    aop 切面demo
    JVM之旅------jvm内存模型
  • 原文地址:https://www.cnblogs.com/Xiegg/p/3621054.html
Copyright © 2020-2023  润新知