2016-05-04 50 views
-4

我剛剛開始編程,並且我不太瞭解計算機,比如內存,cpus內部的東西。java對象如何使用內存?

好吧,我知道的基本知識!

在Java文檔:

  • 字節= 8個比特
  • 短= 16位
  • INT = 32位
  • 長= 64位
  • 浮子= 32位
  • double = 64位
  • char = 16位

我的類:

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

該代碼分配256位內存或需要更多?

方法消耗內存?

如果我有10個Foo對象,它們將在內存中消耗2560字節?

如何處理字符串和布爾值,如何管理內存?

什麼其他的東西影響對象的記憶?

+0

這麼多,你不應該擔心,如果你只是開始編程。 – Kayaman

回答

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 

概念是大的,但你完全陷入了錯誤的方向。

0

它取決於你正在創建的對象的大小。根據用戶或程序員分配的內存,JVM使用該內存來分配對象。 Java