CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

问一个简单的问题,就是当我new一个对象时,它申请的空间怎么计算

楼主shipatrioc(风吹雨打哗啦啦)2004-12-02 19:32:31 在 Java / J2SE / 基础类 提问

public   class   MyTest   {  
          private   int   a;  
          private   OtherClass   c;  
          public   MyTest   {  
            this.a   =   100;  
            this.c   =   new   OtherClass   ();  
          }  
          public   int   getA   ()   {  
                  return   this.a;  
          }  
          public   void   setA   (int   a)   {  
                  this.a   =   a;  
          }  
          public   OtherClass   GetC   ()   {  
                  return   this.c;  
          }  
          public   void   setC   (OtherClass   c)   {  
                  this.c   =   c;  
          }  
  }  
  那么当我   new   一个   MyTest时,申请了多少内存空间呢.  
  问题点数:100、回复次数:17Top

1 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2004-12-02 19:53:04 得分 0

呵呵,又是你啊?  
  我也说过了,给点代码示意一下吧  
  long   before=Runtime.getRuntime().freememory();  
  MyTest   app=new   MyTest();  
  long   after=Runtime.getRuntime().freememory();  
  System.out.println(app);  
  我说过这是不准的,因为内存的消耗不仅仅是new了一个对象的问题,还有很多jvm内部的资源消耗我们都是无法得知的Top

2 楼superman421(38度的雪)回复于 2004-12-02 19:54:03 得分 10

呵呵,你怎么问这个问题。java是跨平台的,系统不一样怎么分配就不一样呀!Top

3 楼kenli(爱祝福网(http://www.izhufu.com/))回复于 2004-12-02 19:57:27 得分 10

基本上无法计算吧。实现不一样,消耗内存不一样。Top

4 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2004-12-02 20:03:12 得分 70

long   before=Runtime.getRuntime().freeMemory();  
  MyTest   app=new   MyTest();  
  long   after=Runtime.getRuntime().freeMemory();  
  System.out.println(after-before);  
  这样  
  Top

5 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2004-12-02 20:05:37 得分 0

我试了一下,每次结果都不一样,所以根本没办法算Top

6 楼whyxx(最近有点闲)回复于 2004-12-02 20:12:14 得分 0

没法算.Top

7 楼shipatrioc(风吹雨打哗啦啦)回复于 2004-12-02 20:22:52 得分 0

To     jFresH_MaN()(AbsolutelyFresh)(java欣人)  
  另外发个帖子给你分了.  
  呵呵开玩笑,开始是做C的,每用一个Struct都要算一下需要多少内存单元,养成习惯了!Top

8 楼shipatrioc(风吹雨打哗啦啦)回复于 2004-12-02 20:28:34 得分 0

我们抛开jvm那一部分不说,就分配给对象这一部分应该可以知道吧?Top

9 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2004-12-02 20:37:30 得分 0

呵呵,至少我不会算。  
  类里面的东西太多了,基本数据类型倒好办,但方法是不是也要消耗内存,不同的方法消耗多少,这些问题我们都无法得知啊  
   
   
  ps:楼主还是不要追究这个问题了吧,其实挺无聊的  
  Top

10 楼dingtang(冷枫)回复于 2004-12-02 21:04:17 得分 0

好像JAVA是自动分配的吧  
  我可是什么都不懂的Top

11 楼zdsdiablo(十分钟年华老去)回复于 2004-12-02 21:13:06 得分 0

我都不知道,先记下拉Top

12 楼lightEIF(苍鹰)回复于 2004-12-02 21:34:46 得分 0

JAVA   里面没办法算的,不像c里有sizeof。Top

13 楼zyg158((DD)OTP)回复于 2004-12-02 21:45:21 得分 10

你只要有个大概估计就行了,具体要看实际运行情况  
  不同的操作过程,消耗的内存空间就会不同Top

14 楼jiuchaogudu(三井)回复于 2004-12-02 21:46:30 得分 0

目前恐怕没有   了解的必要吧  
  因为   电脑的内存都是越来越大了Top

15 楼machete52(流浪的剑)回复于 2004-12-02 22:04:26 得分 0

与用户需求共同进步,呵呵Top

16 楼LoveJ2ee_Frisk(小月又欠)回复于 2004-12-02 22:04:30 得分 0

无法进行具体的计算。看平台环境而定。Top

17 楼shipatrioc(风吹雨打哗啦啦)回复于 2004-12-03 08:20:51 得分 0

大概明白什么意思了,结帖了!Top

相关问题

  • 申请内存空间(40)
  • 申请免费空间
  • 计算某个算法的空间实验(内存空间)
  • 释放对象空间报错!急!!急!!
  • 哪里有申请免费FTP空间
  • 有哪位到www.websamba.com申请过空间
  • 哪里有免费asp空间申请?
  • 那里能申请到免费空间
  • malloc申请空间大小的疑问
  • 申请一个节点空间

关键词

  • 内存
  • runtime
  • otherclass
  • mytest
  • freememory
  • 消耗
  • getruntime
  • 对象
  • 空间
  • 一样

得分解答快速导航

  • 帖主:shipatrioc
  • superman421
  • kenli
  • jFresH_MaN
  • zyg158

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

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