java - Java 堆中对象的大小以及方法

标签 java methods heap-memory classloader

我了解存在于堆上的基元和对象,但是方法的数量如何影响对象的堆大小?

例如:

public class A {
    int x;
    public getX() { return x; }
}

public class B {
    int x;

    public getX() { return x; }
    public getXString() { return String.valueOf(x); }
    public doMoreInterestingStuff() { return x * 42; }
    //etc
}

实例化时,两个对象都位于堆上,都分配了内存给其基元x,但 B 是否由于具有更多方法签名而分配了更多堆空间?或者这些仅在 permGen 空间上?在这个例子中,它是微不足道的,但是当内存中在任何给定时间有超过 100,000 个这些对象时,我想它可能会增加。

最佳答案

how does the number of methods effect heap size of the object?

事实并非如此。它对每个对象的大小没有影响,实际上也没有必要 - 它不像该类型的每个对象都有不同的方法。

显然,额外的方法会在“某处”占用内存(基本上与类相关),但它不是基于每个对象

关于java - Java 堆中对象的大小以及方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11229405/

相关文章:

java - 如何从 EditText 中获取前 10 位数字,并在 TextView 中设置这些数字?

java - 在 Weblogic 10.3 中使用 Servlet 3.0

java - 将 int[][] 作为通用参数传递

c++ - 我可以在堆分配的原始数组上使用 std::sort 吗?

Java Statics 原语、对象、方法和堆(内存管理和最佳实践)

java - 将 json 格式的参数数组传递给 SOAP Web 服务?

java - 不以//开头如何接受单行 Java 注释?

javascript - 在数组中搜索对象

Java,将非静态方法传递给另一个方法

java - 当进程达到一定内存大小时在 Linux 中重新启动服务