Referencja w Javie

0

Czy ktoś wie ile zajmuje referencja do obiektu w Javie? Podejrzewam, że ta wielkość jest zależna od architektury, a nie od języka ale nie wiem na 100%. Jeżeli tak jest to jak Java sobie z tym radzi? Z góry dzięki za wszelkie info, linki.

0

Nie wiem czy dobrze zrozumiałem, ale zadeklaruj obiekt i daj na nim metodę capacity().

//Edit
Jednak źle skumałem :P
architektura 32 bity -> referencja ma 32 bity
architektura 64 bity -> referencja ma 64 bity (pakowanie referencji ma np. BEA JRockit, która potrafi w 64bitowym środowisku używać 32bitowych referencji a gdy zajdzie potrzeba używa 64bitowych)

http://osnews.pl/java-w-koncu-wolna-i-otwarta/#comment-1088652

http://osnews.pl/java-w-koncu-wolna-i-otwarta/#comment-1088712 (w tym komentarzu maszk ilka przydtanych linków, m.in. "32-bit-versus-64-bit-jdk-memory-usage"

0

Dobrze podejrzewasz. Formalnie referencja w kodzie 32-bitowym zajmuje 32-bity, a w kodzie 64-bitowym 64-bity. :) A przynajmniej tak to się dzieje w implementacji JVM Suna. Ale są też optymalizacje JVM, które pozwalają skracać ich wielkość dla aplikacji potrzebujących mniej niż 4 GB RAM.
http://portal.acm.org/citation.cfm?id=977662

Spróbuj obadać źródło tej klasy. Sprawdza ona długość referencji w bajtach.
http://db.apache.org/derby/javadoc/engine/org/apache/derby/iapi/services/cache/ClassSize.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1