2016-05-04 10 views
-4

私はちょうどプログラミングを始めています。私はメモリのようなコンピュータについてはあまりよく分かりませんが、内部のものはCPUです。Javaオブジェクトはどのようにメモリを使用しますか?

私が知っている基本!

  • バイト= 8ビット
  • 短い= 16ビット
  • INT = 32ビット
  • 長= 64ビット
  • フロート= 32ビット
  • :Javaドキュメントで

    ダブル= 64ビット

  • char = 16ビット

私のクラス:

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

このコードは、メモリ内の256ビットを割り当てたり、それはより多くを必要ですか?

メソッドはメモリを消費しますか?

私は10個のFooオブジェクトを持っていると、2560バイトのメモリを消費しますか?

文字列とブール値はどのようにメモリ管理されていますか?

オブジェクトのメモリに他にどのような影響がありますか?

+0

ちょうどあなたがプログラムを始めているのであれば、それほど心配しないでください。 – Kayaman

答えて

0

実際にオブジェクトがいくつあるのかということではなく、実際に作成されるオブジェクトのサイズです。 JavaプログラムまたはJVMにいくつかのメモリを割り当て、そのメモリを使用してオブジェクトを割り当てます。

少数のオブジェクトがメモリを消費することはほとんどありません。

それは

などJVMに割り当てられているどのくらいのスペース、マシンにサーバマシンに依存また、メモリの消費量は、JVM実行GC高く、メモリを解放するたびに、GCに依存しません。

一つの完全なメモリが使い果たされ、JVMは不平を言うとOutOfMemoryError

単純なJavaプログラムは、OOMエラーを投げることができ

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

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

出力はコンセプトが大きいがスローされますが、あなたは完全に間違った方向にいる。

0

それは、ユーザまたはプログラマーJVMオブジェクトを割り当てるためのそのメモリを使用することによって割り当てられたメモリによれば、.. uが作成されるオブジェクトのサイズに依存.. Java

関連する問題