0
A
回答
2
您可以使用x64
JVM。它使用8
字節。
但是,如果您有對象,則它們中的每個對象都是最少40個字節...無論如何它都不適合4GB
內存。
5
32-bit
JVM確實使用32
位作爲參考,但64-bit
JVM可以使用64-bits
作爲參考。
之前,你耗盡上一個32-bit
JVM引用數量的2 限制,你會得到一個OutOfMemoryError
(你不能比堆2GB
更上一個32-bit
JVM,不管可用RAM )。
在64-bit JVM
上,您可以創建多於2個對象,假設您有足夠的內存來存儲它們。
請注意,某些64位JVM可能使用32位指針(CompressedOops flag on hotspot)用於性能目的。
+0
我測試它在64位環境,真的有4個字節指向obejct – user1010434
+2
在3.5gbs下它將使用'壓縮oops'。即使使用64位JVM,也會將參考大小壓縮爲4個字節。 –
相關問題
- 1. 爲什麼mode_t使用4個字節?
- 2. 爲什麼64位地址的前4個字節打印爲0x00000001?
- 3. 爲什麼64位平臺上的BSTR長度前綴爲4個字節?
- 4. Spring引導在64位JVM上使用大量內存
- 5. 爲什麼java使用2個字節來存儲char值
- 6. 我的64位機器每個內存位置只能存儲4個字節
- 7. 64位JVM上對象引用的內存要求
- 8. 爲什麼sem_t在64位linux中是32字節?
- 9. 節點使用什麼env變量來加載庫?
- 10. 爲什麼Kotlin字節碼引用java.util.function.BiConsumer?
- 11. 爲什麼gdb告訴我一個指針在x86-64上是4個字節?
- 12. 爲什麼32位等於4Giga字節而不是4吉位
- 13. 64位jvm上的Java內存不足
- 14. 如何確保JNLP是在64位JVM
- 15. 爲什麼這個類型參數保存在字節碼中?
- 16. 什麼是一個好的64位NASM程序集引用?
- 17. 32與64位JVM
- 18. 64位Eclipse和JVM
- 19. 爲什麼這個代碼有3個八位字節超過4個字符?
- 20. 爲什麼從反引號調用sqlplus時ActivePerl 64位崩潰?
- 21. 爲什麼使用IIS7.5的Microsoft.Web.Management.dll僅適用於64位進程?
- 22. 爲什麼valgrind在64位程序中報告指針的大小爲4字節
- 23. 爲什麼字節尋址內存而不是4字節尋址內存?
- 24. JVM,64位Linux上的Tomcat
- 25. 64位平臺中的4字節指針?
- 26. 爲什麼在Rust中'char'的大小是4個字節?
- 27. 將簽名的long int(32bit)存儲爲4個八位字節?
- 28. 爲什麼我會用另一個JVM?
- 29. 爲什麼只用移位來轉換兩個字節是無稽之談?
- 30. 爲什麼JVM不使用RMI
我不認爲許多應用程序 – keyser
嘗試創建太多可能的對象,看看會發生什麼。 – tbodt