问一个简单的问题,就是当我new一个对象时,它申请的空间怎么计算
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




