A: String str ="a";
Response.Write(str);
和
B: Response.Write("a")两者处理过程一样吗?内存占用一样吗?对于A 来说,运行时要分配一块内存;
对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存?
Response.Write(str);
和
B: Response.Write("a")两者处理过程一样吗?内存占用一样吗?对于A 来说,运行时要分配一块内存;
对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存?
告诉我的
我只是转他说的话哈。
A比B 多占内存 3-4个字节
B占内存
Response.Write(str);
和
B: Response.Write("a") //////////此处没有创建一个对象。只开了一个内存区域。
由于.net是托管的。两者应该没有啥区别。只是a在解析时候会有些复杂了些。
另外。Response.Write(str)或Response.Write("a" 都要先转成机器能直接执行的代码。这个转换过程。是有区别的。对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存?
这个是东西先在内存做后来要传到客户端。从内存到网络。(但是中间传的并不是只有"a").以前搞软件开发<windows核心编程>这本书都是必备的。现在这些估计很少有人看了。
这个大家都明白,但是Response.Write("a")是否开辟了一块专门的区域来存储“a”呢
我还是会用第一种对于B 来说,运行时到底分配一块内存吗?还是就是输出流,完全不占用内存?
对于常量字符串 编译器是会把他编译保存 在程序运行的时候加载到内存中详细参考《clr via C# 》某页