zoukankan      html  css  js  c++  java
  • 容易被忽视的装箱问题

    测试代码:(不知道怎么回事,粘贴不了代码)

    分析如下:

    说明:左侧为栈,右侧为堆。

    注意:在(Angle)objectAngle中,执行了拆箱动作(获取对象objAngle中属于值类型Angle部分的字段地址),然后在IL的演算堆栈中创建一个临时的Angle值类型实例,该值类型接受一份objectAngle当前所引用对象的属于Angle值类型部分(也可称作‘未装箱部分’)的数据拷贝,并未发生数据到“通常意义上的栈”(我不知道此处如何表达,暂且写成“通常意义上的栈”,自己先慢慢理解)的复制。实际上,拆箱指令并不包括将数据复制回栈的动作。(装箱包括数据复制到堆的动作)

    第四种,向IAngle的转型是伴随已经在堆上的数据发生的,所以不会发生复制动作。通过接口访问已装箱的值时,不需要进行复制。

  • 相关阅读:
    bzoj 1040: [ZJOI2008]骑士
    CF Playrix Codescapes Cup Problems Analysis
    C++ 指针[转+原创]
    高斯消元
    NOIP模拟
    线段树合并
    After ZJOI2017 day2
    ZJOI 2017 day2 4.27
    ZJOI 2017 二试 day1 4.26
    ZJOI 2017 二试 day0
  • 原文地址:https://www.cnblogs.com/2008freestyle/p/2466258.html
Copyright © 2011-2022 走看看