.Net的要知道的一些事

1、什么是.NET?什么是CLI?什么是CLR?IL是什么?JIT是什么,它是如何工作的?GC是什么,简述一下GC的工作方式?

.Net是微软推出的框架

CLI是公共语言接口(规范)

CLR是公共语言运行时

IL是运行在.Net之上的类似汇编的语言,

JTT是即时编译器,用于首次加载的时候编译可重复运行的模块,虽然CLR理解IL, 但是CPU只认识二进制指令, 所以CLR需要JIT的帮助, 将IL翻译成CPU指令. JIT按需工作, 当一个.NET方法即将被执行时, JIT会介入, 把该方法(IL指令) 编译成CPU指令, 并保存以供重用。

GC是垃圾回收,用于回收当前进程中已无人使用的垃圾对象,主要是根据索引数来判断是否应该收回,有定时机制。

2、类(class)和结构(struct)的区别是什么?它们对性能有影响吗?.NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?

首先,1.0一个是值类型,类是引用类型。就是说值类型是用于存储数据的值,引用类型是用于存储对实际数据的引用地址。,

2.0结构是没有构造函数的。因为构造函数是为了初始化类的字段而存在的,而结构体并不需要初始化就能使用。

对结构体的定义是有些事物是相互关联的,又共同的描述一个完整的事物,主要是描述一个结果上,这个时候就用到结构体。

在自定义类型时,通常对效率要求比较苛刻,或者对内存布局有要求(例如跟C++或者unsafe代码交互)的时候会选择结构类型,而需要频繁传递,各处引用时则选择类。

3、在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?“结构”对象可能分配在堆上吗?

堆就是一大块自由的内存,把它分成若干内存块,系统维护各个内存块的已分配和未分配状态。栈就是一小块内存,以push和pop的方式分配和回收。一般而言,函数局部变量和参数都是在栈上的,而new的对象在堆上分配。结构对象在做为类成员的时候就是分配在堆上。

时间: 2024-10-12 13:07:33

.Net的要知道的一些事的相关文章

关于打码的一些事

1.今晚打代码算是遇到好多问题了,但是谷歌,stackoverflow,谷歌翻译,一点点都解决了,问别人也没回,所以说还是靠自己,记得更久一些,自己栽过的坑,印象会更深刻. 2.静下心来做一件事,很多事情没想象的那么难的. 3.喜欢这种学习后的充实感,不会像打完游戏或者看完视频一样迷茫. 4.继续加油吧. 5.原来右键网页图片可以get到url.

10682 deathgod想知道的事(数论)

10682 deathgod想知道的事 该题有题解 时间限制:1000MS  内存限制:65535K提交次数:265 通过次数:14 题型: 编程题   语言: G++;GCC Description 一只蚂蚁从衣服地图上爬过留下痕迹,deathgod看到后在地图上建了个坐标,将蚂蚁留下的痕迹分成多条线段首位相连而成, 且那些线段的端点都是整数点,现在他想知道这只蚂蚁经过了坐标中多少个整数点. 输入格式 第一行输入一个整数t,表示case数:对于每个case,第一行输入一个整数n(0<=n<=

转 离婚前夜悟出的三件事

文/铁眼(简书作者)原文链接:http://www.jianshu.com/p/832be4f659a0?utm_campaign=hugo&utm_medium=reader_share&utm_content=note著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 前两天,在一次吃饭的时候,感觉嘴里有异样,用牙签一挑,一颗智齿酥了,脱落下来.当时很惊恐,自己才30多点,牙齿就坏了,那时只有后悔的想法,如果再往回调两年时间,我一定好好认真的刷牙,保养好牙齿. 牙齿如此坚固

专业房产经纪人必须知道的九件事

1 顾客说的话不全信 顾客是上帝,但是上帝从来不会把自己的心交给他的下人.80%的顾客因为对你抱有戒心,所以他是不会把自己的真实承受价格告诉你的,当然这种留有余地的做法是人之常情.你要做的不过是告诉顾客你是多么的专业就可以了,你要让顾客相信你,这样,你的工作才能完成. 2 永远不要对顾客说没有 永远不要对顾客说没有,即便顾客的要求非常无理.我们接到一个电话,可能是形形***的,有细心询问,有侃侃而谈,我们怎么在一个电话间去判断这个顾客?如果判断对了,顾客对你的信任度就会加强,接下来一切工作都好办

[java学习笔记]Hello World那些事

我们安装和配置好java后,必须得大展拳脚一番,根据国际惯例,第一个程序必须是Hello World,下面我们就看看Hello World的那些事. 1.Hello World的运行 Hello World流程: 将java代码编写到.java后缀的文件中保存. 通过javac编译命令对该.java文件进行编译(编译后产生.class文件). 通过Java命令运行产生的,class文件. 流程图:   F:\Demo.java文件内容: public class Demo{ public sta

做正确的事,不做容易的事

原文<李想:"做正确的事,不做容易的事"> 本文是我(李想)在去经纬投资和他们聊天的时候,速记员帮助我把聊天的内容记录了下来的整理.因为内容量很大,所以速记会有一些记录错误的地方.我想了一下,还是使用原文重新整理了一遍,把里面的错字和错误的数据进行了修改,从而避免对阅读者的误导. 不过,仍然感谢经纬和速记的帮助,这确实是我过去十几年创业最实实在在的记录. 我也开通了长微博打赏的功能,各位大爷看的好,赏几个零花钱! 李想,汽车之家网站创始人,前任汽车之家总裁.李想是80后的典

开发人员转型到管理者必须学会的7件事

技术工程师的晋升之路 技术工程师的晋升之路大体上可以分为两个方向,一是在技术方向上作为Individual Contributor(IC)继续深造,二是以管理者的身份管理工程师团队.IC这条路比较单纯,能走多远主要取决于个人的技术实力与经验.与IC相比,转型为管理者可以说是一种颠覆性的变化.管理者的工作不再是以个人或项目的成功作为主要目标,而是专注于整个团队的成功.这种目标的变化将直接改变管理者的心态与工作方式,以及与他人的互动方式.可以说,向管理者的转型是一个具有更大挑战性的选择. David

想提升工作效率,就別再做这七件事

试想一位小公司老板每日孜孜不倦地工作,为何不能从为数众多的竞争者脱颖而出? 一位创业家可以不眠不休一天工作24 小时,整整一周不休假. 然而,时间有限,且竞争者却永远可以投入更多钱与心力,让竞争更剧烈.那么,为什么某些小型新创公司可以完成许多大型企业无法完成的事情呢? ●Instagram──只有13 名员工却被Facebook 用几十亿买下的公司. ●Snapchat──只有30 名员工却拒绝科技巨人Facebook.Google 的并购交易. 它们的成功部分来自于幸运──其余则是因为效率 .

java开发中的那些事(5)--------一点经历,败给2分钟的2个小时

特意记下这个经历,这个让我感慨万千又斗志昂扬的一次经历,这是经验,也是生活. 故事的始末是这样的,先给大家上几句代码,现在身在家中,只能凭记忆敲打几行,大致意思倒不会错: {field:'code',align:'center'} {field:'btfid',align:'center',hidden:'true', formatter:function(value,row,rowIndex){ return "<a href="javascript:void(0)"

从HTTP 2.0想到的关于传输层协议的一些事

0.HTTP协议的历史 我也不知道... 1.关于HTTP 2.0 收到了订阅的邮件,头版是说HTTP 2.0的内容,我本人不是很关注HTTP这一块儿,但是闲得无聊时也会瞟两眼的.HTTP 2.0的最大改进我觉得有两点:第一:新增了帧层帧层的好处在于重新分发流信息,服务器处理顺序可以不再依赖用户提交请求的顺序了.另外就是不必一定用TCP传输HTTP了,实际上规范一开始就是这么说的.第二:HTTP头的内容可以增量交互了很 多的HTTP头里面的信息都是参数的协商,每次都要携带,如key/value的