• 值类型和引用类型的区别


    1.值类型和引用类型:

    摘要:.net和Java这一类的高级语言封装性都比较好,很多底层的东西没办法直接看到,就像今天要介绍的值类型和引用类型一样!只有清楚其底层的实现才能深入的进行使用,下面就开始对值类型和引用类型的分析。

    一.先看一道例题:

    运行的结果如下:

    结果1       1000
    结果2       1000
    结果3:      20
    结果4:      200
    分析:根据引用类型特点,str1和str2应该都是“abc”,为什么结果是这样的呢?
    解释:通过ReferenceEquals()方法可以知道,str1和str2内存地址不同,而str3和str4内存地址相同;可以判定不同的String,相同的值,其引用地址相同,如果赋值为同一个值,在内存中只有一个字符串存在,两个引用的地址相同。由此引出String的不变性。——通俗解释就是给变量赋值时,如果这个值前面出现过,就直接把那个值的地址赋给这个变量。
     
    三.简单谈谈浅拷贝和深拷贝:

    简单来看看浅拷贝和深拷贝的定义

    浅拷贝:只复制一个对象,对象内部存在的指向其他对象数组或者引用则不复制

    深拷贝:对象,对象内部的引用均复制

    关于浅拷贝和深拷贝具体的区别可以参考  “具体区别

  • 相关阅读:
    Mysql 基础
    Python Cdn平台文件md5验证
    Linux内存cache/buffer剖析
    wget
    UTV
    智能DNS解析之edns-client-subnet篇
    Python Django
    OpenSSL SNI
    Python 基础(一)
    Python ORM
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/4557621.html
Copyright © 2020-2023  润新知