首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >托管代码与非托管代码

托管代码与非托管代码
EN

Stack Overflow用户
提问于 2016-07-15 20:43:04
回答 1查看 925关注 0票数 6

我正试图把我的思想集中在托管和非托管代码的概念上。如果我错了,请纠正我,但是托管代码是被编译成字节码,而非托管代码被编译成机器代码的任何东西。

这是正确的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 20:51:15

从annakata的回答来看:

托管代码不是编译成机器代码,而是编译成中间语言,由机器上的某个服务解释和执行,因此在(希望!)安全框架,它为您处理诸如内存和线程之类的危险事情。在现代用法中,这通常意味着.NET,但不必这么做。 非托管代码被编译成机器代码,因此由操作系统直接执行。因此,它具有执行托管代码所不能做的破坏性/强大功能的能力。这是所有东西过去都是这样工作的,所以通常它是与像.dlls这样的旧东西相关的

引擎盖下面是怎么回事?托管和非托管是,所有这些都是关于内存的。

在托管代码中,代码本身并不直接操作内存。它为代表代码执行此操作的运行时提供指令。这样,不安全或非法的操作就可以被阻止,代码在半沙箱中运行。托管语言可以而且经常有非托管代码--这就是计算的本质。

想象记忆就像一个巨大的停车场。托管语言和非托管语言之间的区别如下:

用一种管理语言,你走到贴身跟班面前,解释说你要停10辆车。你不知道它们到底停在哪里,但你知道,随时随地,仆人都会乐意为你取回它们。你也不能决定他们停在哪里--你只需要告诉服务员他们需要停车。

在一种非托管语言中,你的工作是挑选地点。你可以把车开到其他的车里,停在残疾人的地方,这样你的表现就会更好(你不需要不断地向贴身服务员传达指令),但你也会犯很多愚蠢/危险的错误。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38404743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档