zoukankan      html  css  js  c++  java
  • 值类型和引用类型的区别

    1.值类型和引用类型:

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

    一.先看一道例题:

    运行的结果如下:

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

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

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

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

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

  • 相关阅读:
    [日常训练]FJ省夏令营day1
    [vijos1002][NOIP2005]过河
    [poj2446]Chessboard
    [bzoj1854][SCOI2010]游戏
    [模板]匈牙利算法
    [bzoj3670][2014湖北省队互测week2]似乎在梦中见过的样子
    笔记3-27
    笔记3-26
    笔记3-25
    Codeforces891C. Envy
  • 原文地址:https://www.cnblogs.com/fengxuehuanlin/p/4557621.html
Copyright © 2011-2022 走看看