2012-01-06 8 views

उत्तर

27

हां। एक जावा long बिना किसी अपवाद के किसी भी JVM पर 64 बिट्स है। सभी जावा आदिम प्रकार पूरी तरह पोर्टेबल हैं और सभी कार्यान्वयन में निश्चित आकार हैं।

+5

जेएलएस संदर्भ: http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.3 – Mat

4

हां। एक long को 64-बिट इंटीजर के रूप में जाना जाता है।

4

आदिम प्रकार हमेशा एक ही आकार होते हैं। केवल संदर्भ आकार में बदल सकते हैं, लेकिन आपको आमतौर पर इसे जानने की आवश्यकता नहीं है।

आप के साथ

int addressSize = Unsafe.addressSize(); 

नोट एक संदर्भ के आकार प्राप्त कर सकते हैं: (पर नवीनतम जावा 6 + JVMs) यहां तक ​​कि एक 64-बिट JVM में, संदर्भ 32-बिट कर रहे हैं लेकिन जब तक आप एक 32 का उपयोग जीबी ढेर या बड़ा। ओपनजेडीके/सन/ओरेकल जेडीके पर यह डिफ़ॉल्ट है, हालांकि @ user988052 नोट्स के रूप में, आईबीएम जेवीएम को कमांड लाइन पर सेट करने के लिए उचित ध्वज की आवश्यकता है। अन्य JVMs इस विकल्प का समर्थन नहीं कर सकते हैं।

+0

* यहां तक ​​कि 64-बिट JVM (लेटसेट जावा 6+ JVMs पर) में भी, संदर्भ 32-बिट हैं जब तक आप 32 जीबी ढेर या बड़े * का उपयोग नहीं करते ... क्या वह JVM निर्भर नहीं है? * -XX: Oracle/Sun JVMs पर + UseCompressedOOps * वास्तव में डिफ़ॉल्ट है, जहां तक ​​मुझे पता है लेकिन स्पष्ट रूप से आईबीएम जेवीएम, उदाहरण के लिए, निर्दिष्ट करता है कि यदि आप * * * * उनके * Xcompressedrefs * VM पैरामीटर का उपयोग नहीं करते हैं, तो संदर्भ डिफ़ॉल्ट रूप से 64-बिट्स पर संग्रहीत हैं ... – TacticalCoder

+0

मैंने आपकी टिप्पणी को शामिल करने के लिए अपना उत्तर अपडेट किया है, धन्यवाद। –

संबंधित मुद्दे