CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

null 占 多少内存

楼主dufr()2005-03-04 18:34:54 在 .NET技术 / C# 提问

假设对象a    
  a=null;  
  那么a   占多少内存?  
  和a的构造函数有关吗? 问题点数:0、回复次数:28Top

1 楼bitsbird(一瓢 在路上...)回复于 2005-03-04 18:38:53 得分 0

对象一旦创建,就在堆栈上分配内存Top

2 楼Sunmast(速马@Redmond, WA)回复于 2005-03-04 18:40:29 得分 0

0Top

3 楼godwater8(仙水)回复于 2005-03-04 18:53:12 得分 0

还是会占内存的  
  a=null   表示引用a指向0    
  a本身站的内存不变  
  只是a指向空而已Top

4 楼XueBoy163(菜刀之恋)回复于 2005-03-04 19:46:22 得分 0

a应该是4字节的  
  Top

5 楼Sunmast(速马@Redmond, WA)回复于 2005-03-04 23:52:45 得分 0

...  
  假如要把指针本身占用的内存算进去的话,没错,不是0...GC上的引用记录和指针占用的空间一样大吗?  
  啊,还有可能是,上下文已经再没有a需要了,编译器或者JIT直接干掉了a,这样,还是0  
  另外一种情况是,a是引用类型的对象,a原先在GC上分配的内存尚未释放,所以可能是正无穷大  
  ...讨论这个问题是不是有点无聊?  
  从这个意义上来说,a占用多少内存和null占用多少是两个问题  
   
  但是看到楼主的标题是:null占好多内存  
  我相信不管是堆还是栈上都无法新建一个"null"对象的Top

6 楼chendazhi(不务正业)回复于 2005-03-05 08:30:46 得分 0

=null,不初始化,不分配内存  
  ="",初始化,分配内存,内容是空串Top

7 楼dufr()回复于 2005-03-07 20:43:18 得分 0

怎么计算a的内存大小?Top

8 楼alexzhang00(三角猫)回复于 2005-03-07 20:59:50 得分 0

0Top

9 楼xushili(乞力马扎罗)回复于 2005-03-07 21:03:13 得分 0

代码托管就是为了让程序员把绝大多少精力用到业务逻辑中,还在讨论这个问题是不是有点钻牛角尖误入歧途的味道?Top

10 楼godwater8(仙水)回复于 2005-03-07 21:13:20 得分 0

好像没有讨论这个问题的必要  
  因为没有实际的应用价值Top

11 楼tsys2000(☆唐僧☆)回复于 2005-03-07 21:35:11 得分 0

markTop

12 楼yizhixiaozhu(天啦,手都起茧了)回复于 2005-03-07 22:37:51 得分 0

upTop

13 楼bthl(冰糖葫芦)回复于 2005-03-08 09:45:41 得分 0

0  
  0  
  0  
  0  
  0Top

14 楼sxuhai(海海)回复于 2005-03-08 09:55:05 得分 0

null不占内存Top

15 楼egxsun(egxsun)回复于 2005-03-08 10:26:18 得分 0

0Top

16 楼topycsdn(神木_草)回复于 2005-03-08 10:33:42 得分 0

代码托管就是为了让程序员把绝大多少精力用到业务逻辑中,还在讨论这个问题是不是有点钻牛角尖误入歧途的味道?  
  ===================================  
  楼主写程序太累了,这问题讨论讨论休息休息,呵呵Top

17 楼WKF(逍遥)回复于 2005-03-08 10:35:45 得分 0

a不应该占内存。Top

18 楼superhasty(鸟儿自空中飞过)回复于 2005-03-08 10:42:11 得分 0

只能说在写了a=null以后,不增加占用的内存,也不减少占用的内存。  
  Top

19 楼xlkg_ss(我想学习)回复于 2005-03-08 11:20:06 得分 0

为空,应该是不占用内存了,释放掉了!Top

20 楼xlkg_ss(我想学习)回复于 2005-03-08 11:21:31 得分 0

就这个问题来说,c#到底需要不需要释放内存呢?怎么释放呢?  
  可以讨论一下阿!楼主不好意思,占用你的地方,我也是好奇这个问题!Top

21 楼topycsdn(神木_草)回复于 2005-03-09 14:12:04 得分 0

为空,应该是不占用内存了,释放掉了!  
   
  ===================  
  错,a没有释放Top

22 楼iheshi(小适)回复于 2005-03-09 19:23:27 得分 0

嗯,说说自己的看法,这个要分情况讨论:  
  1、曾使用过a,然后才让a   =   null;的话。在堆里面不占空间。而在栈里面,还是要占用一些空间的。这个空间原来存放的是对原有的对象的引用(reference),现在为NULL了。  
  2、未使用过a,直接写a   =   null;这样的话,在栈里面也要占空间的。堆里不占用。  
   
  这样看来的话,只要写了a   =,就一定会在栈里面开辟空间了。^_^Top

23 楼iheshi(小适)回复于 2005-03-09 19:25:26 得分 0

不过没有理解楼主的意思了。既然a是对象,它怎么能为NULL呢?Top

24 楼iheshi(小适)回复于 2005-03-09 19:26:14 得分 0

a其实只是放在栈里面的指向实际对象的一个Tag而已嘛。^_^Top

25 楼lw8122(随风)回复于 2005-03-24 12:37:35 得分 0

是4个节节,还是20个字节,有区别吗????、  
   
  null的变量,和整个程序占用的内存相比,完全是渣渣。  
   
  去优化程序的其它部分吧Top

26 楼oolongTea(顶者)回复于 2005-06-06 21:16:24 得分 0

null   和   DBNull   占的大小是一样的吗?Top

27 楼tttick(秉承一贯懒散的生活方式与严谨的工作态度¢)CodinG)回复于 2005-06-06 22:09:08 得分 0

呵呵。。有趣。。学习。。Top

28 楼lql9935(天涯孤客)回复于 2005-06-06 22:34:28 得分 0

好像不用占内容。  
  new   了之后才用吧!  
  Top

相关问题

  • CArray::RemoveAll();之后占用多少内存空间?
  • 引用对象的变量占多少字节内存
  • 一个Picture对象大约会占用多少内存?
  • 如何知道线程占用了多少内存
  • winForm内存占用?
  • 内存/虚拟内存占用问题
  • 一个对象占用了多少字节的内存?用什么命令?
  • 请问这个对象在内存中应该占多少字节
  • 一般的J2ME游戏占用的资源是多少?(内存什么的)
  • 内存占用问题!

关键词

  • 内存
  • null
  • 占用
  • 讨论
  • 引用
  • 对象
  • 释放
  • 空间
  • 指向
  • 楼主

得分解答快速导航

  • 帖主:dufr

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo