出几个题目考考大家

Allen_Chen_ 2011-01-27 05:23:42
闲来无事,出一些题目考考大家:

1.一个.NET应用程序默认情况下有几个Application Domain?
2. Assembly和Module有什么区别?
3. 什么是web开发中常见的double hop问题,有什么解决办法?
4. 什么情况下不把事件处理移除会发生内存泄露?(就是用-操作符移除事件处理)给出一个例子。
5. 送分题,一个class A中有一个int类型的域,当在一个方法中实例化该类一个对象后,这个int类型的域里的数据存放在托管堆还是在栈中?

全答对的给分。
...全文
629 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rock_Wu 2012-01-05
  • 打赏
  • 举报
回复
靠,都是牛人
diandian82 2012-01-05
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 yizhili 的回复:]

1.应用程序是静态的概念,而AppDomain是动态的概念,一般每启动一个应用程序创建一个AppDomain
2.说实话我一直不能理解为何要分出这两者来?
3.不做Web不知道
4.静态事件不把事件处理移除会发生内存泄露
5.托管内存
[/Quote]

4.这根本就不叫内存泄漏
Allen_Chen_ 2011-01-31
  • 打赏
  • 举报
回复
顶一下,有谁能回答出来不?现在还有1,3没人回答出来。来个人把其中一个回答正确了俺就结贴了。
Allen_Chen_ 2011-01-31
  • 打赏
  • 举报
回复
[Quote=引用 44 楼 litaoye 的回复:]

别说,还真有不少概念模糊的地方!

第一题,不知道LZ想要的答案是不是3个
第二题,Assembly包括1个主Module,还可以有几个其他的,还可以有些资源
第三题,不会
第四题,本来就应该-掉,否则GC回收不了,除非转为弱引用
第五题,略
[/Quote]
终于有人答对第一题啦。俺结贴了。没人全答对,给第一个答对的加十分。
绿色夹克衫 2011-01-31
  • 打赏
  • 举报
回复
别说,还真有不少概念模糊的地方!

第一题,不知道LZ想要的答案是不是3个
第二题,Assembly包括1个主Module,还可以有几个其他的,还可以有些资源
第三题,不会
第四题,本来就应该-掉,否则GC回收不了,除非转为弱引用
第五题,略
FatHonor 2011-01-31
  • 打赏
  • 举报
回复
N年的工作经验,我表示答不上来,惭愧
rwm5366745 2011-01-28
  • 打赏
  • 举报
回复
1.一个进程中可以有多个应用程序域(Application Domain),一个应用程序域(Application Domain)中有多个程序集
2
Module是指托管模块,
一个Assembly有多个Module和资源文件组成,
不过一般我们写的Assembly中都用一个Module
Module中包含IL中间代码和元数据。
而将他们组成一个程序集的工具如csc.exe,vbc.exe,al.exe
ltcszk 2011-01-28
  • 打赏
  • 举报
回复
5
int变量其实就是System.Int32的一个实例
ChinaXtHuLang 2011-01-28
  • 打赏
  • 举报
回复
为什么:wuyq11(海之川)不来答答呢??
回复别人帖子挺积极的。
真是奇怪了。。
纯唇Yu弄 2011-01-28
  • 打赏
  • 举报
回复
一个都不懂耶!
Cool_xiaocao 2011-01-28
  • 打赏
  • 举报
回复
经典,一个也不会呢
Allen_Chen_ 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chen_ya_ping 的回复:]
我就来回答一下:
5. 送分题,一个class A中有一个int类型的域,当在一个方法中实例化该类一个对象后,这个int类型的域里的数据存放在托管堆还是在栈中?
送分题,
这个值类型存放在托管堆中。
[/Quote]
很好,你把剩下问题都回答一下,对了分全给你。
chen_ya_ping 2011-01-28
  • 打赏
  • 举报
回复
我就来回答一下:
5. 送分题,一个class A中有一个int类型的域,当在一个方法中实例化该类一个对象后,这个int类型的域里的数据存放在托管堆还是在栈中?
送分题,
这个值类型存放在托管堆中。
Allen_Chen_ 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lukywong 的回复:]
双跃点问题,http://grou.ps/simonchung/wiki/238708
[/Quote]
很可惜,这篇文章有很大问题,只通过设置 <identity impersonate="true" />并不能够解决double hop问题。
Allen_Chen_ 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiaodianzichen 的回复:]
1.一对多的关系。2.一个Assembly有多个Module和资源文件组成, 不过一般Assembly中都用一个Module。3. 这个不会……4.

C# code
class A
{
public:
A();
};
A *B=new A();

当B为某函数的变量时,函数结束B自动析构,但未调用delete释放它指向的内存区,会产生内存泄漏。5.值类型存放在栈……
[/Quote]
全部正确才能加分。你的回答只有第二个勉强算对,其他都错了。
Y2zz 2011-01-28
  • 打赏
  • 举报
回复
楼主闲来无事, 我也闲来无事, 进来领分的
自然框架 2011-01-28
  • 打赏
  • 举报
回复
3. 什么是web开发中常见的double hop问题,有什么解决办法?

好像并不是太常见呀。等待高人指点。
yizhili 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 allen_chen_ 的回复:]

其实你看我第一个回复就知道,一个.NET应用程序默认情况下有1个Application Domain的回答是错误的。
[/Quote]

1.所以我想表达的是应用程序和AppDomain的关系其实类似于应用程序和进程的关系
2.看过几次MSDN一直理不清这两者所以没有深究
3.总之今天是第一次看到,等科普
4.没现成的例子,懒得生造了。static event / static 成员的 event / 更一般的,如果一个对象的生存周期比响应它的事件的对象长,那么后者在前者上注册的 event 都需要手动移除
5.托管堆,一时想岔了
Allen_Chen_ 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 37 楼 zmcici 的回复:]
引用 36 楼 allen_chen_ 的回复:
其实你看我第一个回复就知道,一个.NET应用程序默认情况下有1个Application Domain的回答是错误的。
一个.NET应用程对应一个进程,一个进程有多个Application Domain
[/Quote]
如果用户代码不自己添加Application Domain的话,运行之后默认是几个呢?
骑猪看海 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 36 楼 allen_chen_ 的回复:]
其实你看我第一个回复就知道,一个.NET应用程序默认情况下有1个Application Domain的回答是错误的。
[/Quote]一个.NET应用程对应一个进程,一个进程有多个Application Domain
加载更多回复(18)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧