当前位置:编程学习 > C#/ASP.NET >>

求关于Response.Write("a")的问题。

A: String str ="a";
  Response.Write(str);
  和
B: Response.Write("a")



两者处理过程一样吗?内存占用一样吗?

对于A 来说,运行时要分配一块内存;
对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存? --------------------编程问答-------------------- 没人知道吗 --------------------编程问答-------------------- 可以肯定的是A的代码整洁,B的代码会不乱(字符越长,后期维护越困难) --------------------编程问答-------------------- 不清楚  也有点模糊  --------------------编程问答-------------------- 蛋疼的问题

--------------------编程问答-------------------- 等高手 --------------------编程问答-------------------- 刚才咨询了一个高人
告诉我的
我只是转他说的话哈。
A比B 多占内存 3-4个字节
B占内存 --------------------编程问答-------------------- 等高人 --------------------编程问答-------------------- LZ在纠结于输出流是否占内存。                  嗯,就是刚才那个蛋疼贴。。。。。。。。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 等高人
--------------------编程问答-------------------- 以一个物料来比喻,供应商送货,
A,是先存入仓库,再到生产线。
B,直接到生产线。
--------------------编程问答-------------------- 这代码跟那个蛋疼帖的所谓数据输出占多大内存完全是两码事...你这个字符串本身就是个内存对象,而输出一个磁盘文件不需要全部载入内存...

另外更重要的是...向1000个客户端输出这个字符串和向1个客户端输出这个字符串,这个字符串在内存中都只有一份不会复制1000份...这才是你不该纠结却去纠结的... --------------------编程问答-------------------- A: String str ="a";     /////////创建一个对象。这个对象本身要有一个指针。这个指针。占4个字节。32位系统。
  Response.Write(str);
  和
B: Response.Write("a")  //////////此处没有创建一个对象。只开了一个内存区域。
由于.net是托管的。两者应该没有啥区别。只是a在解析时候会有些复杂了些。
另外。Response.Write(str)或Response.Write("a" 都要先转成机器能直接执行的代码。这个转换过程。是有区别的。

对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存? 
这个是东西先在内存做后来要传到客户端。从内存到网络。(但是中间传的并不是只有"a").

以前搞软件开发<windows核心编程>这本书都是必备的。现在这些估计很少有人看了。 --------------------编程问答-------------------- 等待高手。 --------------------编程问答-------------------- 继续等待 --------------------编程问答-------------------- A比B多了一个指针。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 16 楼 ehzil 的回复:
A比B多了一个指针。


这个大家都明白,但是Response.Write("a")是否开辟了一块专门的区域来存储“a”呢 --------------------编程问答-------------------- 1+1=2?的问题吗 --------------------编程问答--------------------
引用 4 楼 fengyarongaa 的回复:
蛋疼的问题

顶上 --------------------编程问答-------------------- 直接说哪个好就是了 --------------------编程问答-------------------- 为什么要纠结这个东东呢 --------------------编程问答-------------------- 楼主,你这个语句有没有问题啊?能运行吗? --------------------编程问答-------------------- 就算第二种好
我还是会用第一种

对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存?
对于常量字符串 编译器是会把他编译保存 在程序运行的时候加载到内存中

详细参考《clr via C# 》某页  --------------------编程问答-------------------- 每一个string 定义对象都会给内存创建一个位置!那两个东西就多了这个吧! --------------------编程问答-------------------- b方法好。 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,