《你必须知道的.NET》第五章读书笔记
了解.NET的类型很重要
.NET的主要类型分为值类型和引用类型
实例通常分配在线程的堆栈上,并且不包括任何指向实例数据的指针,因为变量本身就包含了其实例数据,内存不由GC来控制,作用域结束时,值类型会自行释放
实例分配在托管堆上,保存了实例数据的内存引用,由GC(Garbage Collection)来控制其回收
出现嵌套的时候,即值类型嵌套引用类型,引用类型嵌套值类型,那么内存又是如何分配的呢?
值类型实例总是分配在他声明的地方,引用类型实例总是分配在托管堆上
2、sizeof()运算符用于获取值类型的大小,但是不适用于引用类型
3、值类型使用new操作符或者赋初值完成初始化,而单纯的定义没有完成初始化,此时对成员的引用将不能通过编译
5、值类型继承自System.ValueType ,而System.ValueType 又继承自 System.Object
6、值类型是密闭的,不能作为其他类型的基类,但是可以单继承或者多继承接口,而引用类型一般有继承性
值类型和引用类型的互相转换
按值传递和按引用传递:
不管是引用类型按值传递还是值类型按值传递,都是在堆栈上复制一个对象的实例,将这个新的实例去传递,不改变原有实例的值。
是直接将指向实例的引用地址进行传递,改变了地址,则会改变参数的值
Ref和Out均为引用传递,区别 是Ref参数传递前该参数必须已经被初始化,而out参数传递不需要
Static 访问修饰操作符 转换修饰操作符 operator 类型 (参数列表)
如果声明了一个类对象指向一个托管堆地址,但是该类对象改变了引用,那么之前的地址会被GC回收
装箱和拆箱
获取已装箱对象中来自值类型部分字段的地址,在执行上不包括字段的拷贝过程
转载于:https://www.cnblogs.com/stayhungry/archive/2013/05/06/3063837.html
《你必须知道的.NET》第五章读书笔记相关推荐
- [你必须知道的.NET] 第五回:深入浅出关键字---把new说透(转载)
[你必须知道的.NET] 第五回:深入浅出关键字---把new说透 作者:Anytao 本文将介绍以下内容: 面向对象基本概念 new关键字深入浅出 对象创建的内存管理 1. 引言 园子里好像没有或者 ...
- Android深度探索--HAL与驱动开发----第五章读书笔记
第五章主要学习了搭建S3C6410开发板的测试环境.首先要了解到S3C6410是一款低功耗.高性价比的RISC处理器它是基于ARMI1内核,广泛应用于移动电话和通用处理等领域. 开发板从技术上说与我们 ...
- 《Java8实战》-第五章读书笔记(使用流Stream-02)
付诸实战 在本节中,我们会将迄今学到的关于流的知识付诸实践.我们来看一个不同的领域:执行交易的交易员.你的经理让你为八个查询找到答案. 找出2011年发生的所有交易,并按交易额排序(从低到高). 交易 ...
- 学习_你必须知道的.net2_第四章_一切从IL开始
IL体验中心: 1: .class表示是一个类 ; .public表示访问权限 ; auto表示程序加载时内存由CLR决定的,而不是程序本身 .ansi实现托管与非托管代码的无缝转换: . ...
- 读:[你必须知道的.NET] 第五回:深入浅出关键字---把new说透
一般说来,new关键字在.NET中用于以下几个场合,这是MSDN的典型解释: 作为运算符, 用于创建对象和调用构造函数. 本文的重点内容,本文在下一节来重点考虑. 作为修饰符,用于向基类成员隐藏继承成 ...
- [你必须知道的.NET] 第五回:深入浅出关键字---把new说透
本文将介绍以下内容: 面向对象基本概念 new关键字深入浅出 对象创建的内存管理 1. 引言 园子里好像没有或者很少把new关键字拿出来说的,那我就占个先机吧,呵呵.那么,我们到底有必要将一个关键字拿 ...
- 《Java必须知道的300个问题》读书总结
这本书是在图书馆随便逛的时候找到的书.花了一下午看完了,感觉有用的地方不是很多,大部分都是些概念,并没有太大用途.不过里边有些东西还是可以看一看的,总结如下. Java语言基础 1.表达式3-2.6= ...
- JS高级程序设计第五章读书笔记
1.引用类型的值(对象)是引用类型的一个实例.在ES中,引用类型是一种数据结构,用于将数据和功能组织在一起.它们也长被称为类,但这并不妥当.因为ES在技术层面上是一门面对对象的语言,但它并不具备传统的 ...
- 整理下Anytao《你必须知道的.Net》全文链接
不辞辛苦的一番抗吃赛抗吃喂o(∩_∩)o... [你必须知道的.NET] 第一回:恩怨情仇:is和as http://www.cnblogs.com/anytao/archive/2007/05/23 ...
最新文章
- pcl_filters模块api代码解析
- 仅需6步,教你轻易撕掉app开发框架的神秘面纱(3):构造具有个人特色的MVP模式
- TCP协议三步挥手与四步挥手
- iOS 11.4.1 正式版越狱
- Android之AsyncTask学习笔记
- DBA突破35岁难题的三种策略
- Spring Boot(5)---第一个Spring Boot应用程序
- 关系查询处理 查询优化 论文_2019年4月湖北自考成绩查询入口已开通
- python的运行方式有哪两种_Python基础:Python运行的两种基本方式
- python 线程-threding示例使用
- 用ssh2连接linux实现putty功能范例代码
- solaris查看服务器信息,Solaris下如何显示服务器虚拟内存统计信息
- Linux MPLS 总结
- java二路归并排序算法_二路归并排序的java实现
- Listen1 - 让你畅享全网音乐!你值得拥有!
- 关于邮箱的POP协议、imap协议、imap协议简单讲解
- Ant Design Pro从零到一(页面创建)
- 风控Python绘图技法代码示例
- 四大垃圾回收算法七大垃圾回收器
- 大数据|Spark技术在京东智能供应链预测的应用案例深度剖析(一)
热门文章
- 做自媒体和有没有文化没有太大关系
- 互联网,就像一条条丝线一样,将每个个体、每个组织串联在一起
- 我发现每一个生意做得不错的人都很会说话
- 同一机器部署多个JVM
- “S“ is the acronym for Super
- 运行报错SecureCRT: error while loading shared libraries: libjpeg.so.8:
- python3 windows console 输出乱码问题
- java抽象类代码_java – 抽象类和通用代码
- 软件测试宝藏图_tSQLt –数据库单元测试中被遗忘的宝藏
- 一:MyBatis知识整理(1)