方法密集型Java对象的内存占用是多少?

方法密集型Java对象的内存占用是多少?,java,memory-management,Java,Memory Management,假设我有一个Java类,它有100K的方法代码,不包含变量,但只有20字节的属性 我实例化了这个类中的1000个对象 我是否消耗了100000 k内存?还是只有100K+(20字节*1000)?还是其他什么?加载类本身的内存占用大约与代码大小相对应,但不会为类的每个实例复制代码。一个实例只需要与实例属性一样多的内存+一些管理对象实例本身的开销。您将只实例化对象的“变量”部分,因此只实例化属性(我猜这里和那里的开销只有几个字节)。后一种猜测是正确的。以下是确定Java中对象内存使用情况的一般指南:

假设我有一个Java类,它有100K的方法代码,不包含变量,但只有20字节的属性

我实例化了这个类中的1000个对象


我是否消耗了100000 k内存?还是只有100K+(20字节*1000)?还是其他什么?

加载类本身的内存占用大约与代码大小相对应,但不会为类的每个实例复制代码。一个实例只需要与实例属性一样多的内存+一些管理对象实例本身的开销。

您将只实例化对象的“变量”部分,因此只实例化属性(我猜这里和那里的开销只有几个字节)。后一种猜测是正确的。

以下是确定Java中对象内存使用情况的一般指南:


我怀疑方法定义产生的内存使用量将是一个固定数量(可能在加载类时放入permgen空间),而不是与实例数量成比例。

尝试连接jvisualvm(在JDK中),并告诉我们您看到了什么。

您可以运行它,如果您在linux上,请检查任务管理器/或top。。。。