什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?


Posted in 面试题 onAugust 13, 2016
答案:应用程序域:一种边界,它有公共语言运行库围绕同一应用程序范围内创建的对象建立(即,从应用程序入口点开始,沿着对象激活的序列的任何位置)。应用程序域有助于将在一个应用程序中建立的对象在其他应用程序中创建的对象隔离,以使运行时行为可以预知。在一个单独的进程中可以存在多个应用程序域。以前使用进程边界来隔离在同一台计算机上运行的应用程序。每一个应程序被加载到单独的进程中,这样就将该应用程序与同一台计算机上运行的其他应用程序相隔离。隔离这些应用程序的原因在于内存地址是与进程相关的;在目标进程中,不能通过任何有意义的方式使用一个进程传递到另一个进程的内存指针。此外,您不能在两个进程间进行直接调用。您必须代之以使用代理,它提供一顶程度的饿间接性。托管代码必须先通过一个验证过程,然后才能运行(除非管理员已授权跳过该验证)。次验证过程以下内容:这些代码是否会尝试访问无效的内存地址?是否会尝试执行某些导致进程(该代码运行时所在的进程)无法正常进行的其他操作?通过次验证测试的代码将被人是类型安全的。由于公共语言运行库嫩能够够验证代码是否为类型安全的代码,所以它可以提供与进程边界一样大的隔离级别,而其性能开销在则要低得多。应用程序域提供安全而通用的处理单元,公共语言运行库可使用它来提供应用程序之间的隔离。您可以在具有同等隔离级别(存在于单独的进程中)的但个进程中运行几个应用程序域,而不会造成进程间切换等方面的额外开销。在一个进程内运行多个应用程序的能力显著增强了服务器的可伸缩性。隔离应用程序对于应用程序安全也是十分重要。例如,您可以在单个浏览器进程中运行几个Web应用程序的控件,同时使这些控件不能访问彼此的饿数据和资源。
应用程序域所提供的隔离具有以下优点:在一个应用程序中出现的错误不会影响其他以内功用程序。因为类型安全的代码不会导致内存错误,所以使用应用程序宇可以确保在一个域中运行的代码不会影响进程中的其他应用程序。能够在不停止整个进程的情况下停止单个应用程序。使用应用程序域使您可以卸载在单个应用程序中运行的代码。注意 不能卸载单个程序集或类型。只能卸载整个域。在一个应用程序中运行的代码不能直接访问其他应用程序中代码或资源。为了强制实施此隔离,公共语言运行库禁止在不同应用程序域中的对象之间进行直接调用。要在个域之间传递对象,可以复制这些对象,或通过代理访问这些对象。如果复制对象,那么对该对象的调用为本地调用。也就是说,调用方和被引用的对象位于同一应用程序域中。如果通过代理访问对象,那么对该对象的调用为远程调用。在此情况下,调用方和被引用的对象位于不同的应用程序域中。域间调用所采用远程调用结构与两个进程间的调用或两台计算机间的调用结构相同。代码行为的作用范围由它行为所在的应用程序决定。换言之,应用程序域将提供应用程序版本策略等配置设置、它所访问的任意远程程序集的位置,以及加载到该域中的程序集的位置信息。受管制的代码:在CLR虚拟机中运行的代码。强类型语言:如c/c++就是各种变量在各自的饿作用域使用之前都要由开发者定义类型,并交由编译器分配内存空间。装箱,就是把值转为引用类型。反之应用转为值

Tags in this post...

面试题 相关文章推荐
PHP如何设置和取得Cookie值
Jun 30 面试题
简述你对Statement,PreparedStatement,CallableStatement的理解
Mar 25 面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
Feb 22 面试题
几个SQL的面试题
Mar 08 面试题
介绍一下Transact-SQL中SPACE函数的用法
Sep 01 面试题
叙述DBMS对数据控制功能有哪些
Jun 12 面试题
盛大二次面试题
Nov 18 面试题
Linux面试经常问的文件系统操作命令
Nov 05 面试题
几个常见的软件测试问题
Sep 07 面试题
Java面试题:为什么要用Java
May 11 面试题
shell变量的作用空间是什么
Aug 17 面试题
既然说Ruby中一切都是对象,那么Ruby中类也是对象吗
Jan 26 面试题
某公司的.net工程师面试题笔试题
Nov 22 #面试题
什么是重载?CTS、CLS和CLR分别做何解释
May 06 #面试题
CLR与IL分别是什么含义
Aug 23 #面试题
某公司.Net方向面试题
Apr 24 #面试题
什么是WEB控件?使用WEB控件有哪些优势?
Jan 21 #面试题
北京天润融通.net面试题笔试题
Feb 20 #面试题
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
Feb 21 #面试题
You might like
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
2014/11/19 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
phpStorm2020 注册码
2020/09/17 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
JS实现简单打字测试
2020/06/24 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
2018/06/11 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
PyTorch中permute的用法详解
2019/12/30 Python
Python 文件数据读写的具体实现
2020/01/24 Python
TensorFlow实现指数衰减学习率的方法
2020/02/05 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
Python telnet登陆功能实现代码
2020/04/16 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
《海伦?凯勒》教学反思
2014/04/17 职场文书
2014教师专业技术工作总结
2014/12/03 职场文书
大学辅导员述职报告
2015/01/10 职场文书
超市采购员岗位职责
2015/04/07 职场文书