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

shipatrioc 2004-12-02 07:32:31
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时,申请了多少内存空间呢.
...全文
142 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
shipatrioc 2004-12-03
  • 打赏
  • 举报
回复
大概明白什么意思了,结帖了!
LoveJ2ee_Frisk 2004-12-02
  • 打赏
  • 举报
回复
无法进行具体的计算。看平台环境而定。
machete52 2004-12-02
  • 打赏
  • 举报
回复
与用户需求共同进步,呵呵
jiuchaogudu 2004-12-02
  • 打赏
  • 举报
回复
目前恐怕没有 了解的必要吧
因为 电脑的内存都是越来越大了
zyg158 2004-12-02
  • 打赏
  • 举报
回复
你只要有个大概估计就行了,具体要看实际运行情况
不同的操作过程,消耗的内存空间就会不同
lightEIF 2004-12-02
  • 打赏
  • 举报
回复
JAVA 里面没办法算的,不像c里有sizeof。
  • 打赏
  • 举报
回复
我都不知道,先记下拉
dingtang 2004-12-02
  • 打赏
  • 举报
回复
好像JAVA是自动分配的吧
我可是什么都不懂的
jFresH_MaN 2004-12-02
  • 打赏
  • 举报
回复
呵呵,至少我不会算。
类里面的东西太多了,基本数据类型倒好办,但方法是不是也要消耗内存,不同的方法消耗多少,这些问题我们都无法得知啊


ps:楼主还是不要追究这个问题了吧,其实挺无聊的
shipatrioc 2004-12-02
  • 打赏
  • 举报
回复
我们抛开jvm那一部分不说,就分配给对象这一部分应该可以知道吧?
shipatrioc 2004-12-02
  • 打赏
  • 举报
回复
To jFresH_MaN()(AbsolutelyFresh)(java欣人)
另外发个帖子给你分了.
呵呵开玩笑,开始是做C的,每用一个Struct都要算一下需要多少内存单元,养成习惯了!
whyxx 2004-12-02
  • 打赏
  • 举报
回复
没法算.
jFresH_MaN 2004-12-02
  • 打赏
  • 举报
回复
我试了一下,每次结果都不一样,所以根本没办法算
jFresH_MaN 2004-12-02
  • 打赏
  • 举报
回复
long before=Runtime.getRuntime().freeMemory();
MyTest app=new MyTest();
long after=Runtime.getRuntime().freeMemory();
System.out.println(after-before);
这样
kenli 2004-12-02
  • 打赏
  • 举报
回复
基本上无法计算吧。实现不一样,消耗内存不一样。
superman421 2004-12-02
  • 打赏
  • 举报
回复
呵呵,你怎么问这个问题。java是跨平台的,系统不一样怎么分配就不一样呀!
jFresH_MaN 2004-12-02
  • 打赏
  • 举报
回复
呵呵,又是你啊?
我也说过了,给点代码示意一下吧
long before=Runtime.getRuntime().freememory();
MyTest app=new MyTest();
long after=Runtime.getRuntime().freememory();
System.out.println(app);
我说过这是不准的,因为内存的消耗不仅仅是new了一个对象的问题,还有很多jvm内部的资源消耗我们都是无法得知的
Java8新特性及实战视频教程完整版Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。这种风格将要处理的元素集合看作一种流, 流在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选, 排序,聚合等。元素流在管道中经过中间操作(intermediate operation)的处理,最后由最终操作(terminal operation)得到前面处理的结果。 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用Lambda 表达式可以使代码变的更加简洁紧凑。Java8实战视频-01让方法参数具备行为能力Java8实战视频-02Lambda表达式初探Java8实战视频-03Lambda语法精讲Java8实战视频-04Lambda使用深入解析Java8实战视频-05Lambda方法推导详细解析-上.wmvJava8实战视频-06Lambda方法推导详细解析-下Java8实战视频-07Stream入门及Stream在JVM中的线程表现Java8实战视频-08Stream知识点总结Stream源码阅读Java8实战视频-09如何创建Stream上集Java8实战视频-10如何创建Stream下集.wmvJava8实战视频-11Stream之filter,distinct,skip,limit,map,flatmap详细介绍Java8实战视频-12Stream之Find,Match,Reduce详细介绍Java8实战视频-13NumericStream的详细介绍以及和Stream之间的相互转换Java8实战视频-14Stream综合练习,熟练掌握API的用法Java8实战视频-15在Optional出现之前经常遇到的空指针异常.wmvJava8实战视频-16Optional的介绍以及API的详解Java8实战视频-17Optional之flatMap,综合练习,Optional源码剖析Java8实战视频-18初识Collector体会Collector的强大Java8实战视频-19Collector使用方法深入详细介绍-01Java8实战视频-20Collector使用方法深入详细介绍-02Java8实战视频-21Collector使用方法深入详细介绍-03.wmvJava8实战视频-22Collector使用方法深入详细介绍-04Java8实战视频-23Collector原理讲解,JDK自带Collector源码深度剖析Java8实战视频-24自定义Collector,结合Stream的使用详细介绍Java8实战视频-25Parallel Stream编程体验,充分利用多核机器加快计算速度Java8实战视频-26Fork Join框架实例深入讲解Java8实战视频-27Spliterator接口源码剖析以及自定义Spliterator实现一个Stream.wmvJava8实战视频-28Default方法的介绍和简单的例子Java8实战视频-29Default方法解决多重继承冲突的三大原则详细介绍Java8实战视频-30多线程Future设计模式原理详细介绍,并且实现一个Future程序Java8实战视频-31JDK自带Future,Callable,ExecutorService介绍Java8实战视频-32实现一个异步基于事件回调的Future程序.wmvJava8实战视频-33CompletableFuture用法入门介绍Java8实战视频-34CompletableFuture之supplyAsync详细介绍Java8实战视频-35CompletableFuture流水线工作,join多个异步任务详细讲解Java8实战视频-36CompletableFuture常用API的重点详解-上Java8实战视频-37CompletableFuture常用API的重点详解-下Java8实战视频-38JDK老DateAPI存在的,新的DateAPI之LocalDate用法及其介绍.wmvJava8实战视频-39New Date API之LocalTime,LocalDateTime,Instant,Duration,Period详细介绍Java8实战视频-40New Date API之format和parse介绍

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧