java对象如何使用内存?

时间:2016-05-04 09:17:43

标签: java oop memory memory-management

我刚从编程开始,我对计算机知之甚少,比如内存,cpus内部的东西。

好吧我知道的基础知识!

在java文档中:

  • byte = 8位
  • 短= 16位
  • int = 32位
  • long = 64位
  • float = 32位
  • double = 64位
  • char = 16位

我的课程:

public classFoo{
    int a;
    int b;
    long c;
    long d;
}

此代码在内存中分配256位还是需要更多?

方法消耗内存?

如果我有10个Foo对象,它们将在内存中消耗2560个字节?

对于字符串和布尔值,如何管理内存呢?

在对象的内存中还有哪些其他因素会产生影响?

2 个答案:

答案 0 :(得分:0)

这不是关于有多少个对象,而是实际创建的对象大小。 您为Java程序或JVM分配了一些内存,它利用该内存并分配对象。

很少有物体可能需要很少的记忆,而很少有物体需要更多的记忆。

这取决于服务器机器到机器,分配给JVM的空间等等。

此外,它取决于 GC ,每当内存消耗量很高时,JVM运行GC并释放内存。

一个完整的内存耗尽,JVM抱怨并抛出OutOfMemoryError

一个简单的Java程序可能会抛出OOM错误

public static void main(String[] args) {
    long[] l = new long[Integer.MAX_VALUE];
}

<强>输出

Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit

这个概念很大,但你完全是错误的方向。

答案 1 :(得分:0)

这取决于你正在创建的对象的大小。根据用户或程序员分配的内存,JVM使用该内存来分配对象。 Java