Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java 9 में कॉम्पैक्ट स्ट्रिंग्स और कंप्रेस्ड स्ट्रिंग्स के बीच अंतर

कॉम्पैक्ट स्ट्रिंग्स (Java 9)

कॉम्पैक्ट स्ट्रिंग्स Java 9 में पेश किए गए थे ताकि Java 6 के कंप्रेस्ड स्ट्रिंग्स को प्रतिस्थापित किया जा सके। इसका कार्यान्वयन char[] के बजाय byte[] ऐरे का उपयोग करता है, और एक नया coder फील्ड जोड़ता है जो पहचानता है कि स्ट्रिंग LATIN1 (1 बाइट प्रति कैरेक्टर) या UTF-16 (2 बाइट्स प्रति कैरेक्टर) फॉर्मेट में है।

कंप्रेस्ड स्ट्रिंग्स (Java 6)

कंप्रेस्ड स्ट्रिंग्स Java 6 में पेश किए गए थे जो एक बाइट प्रति कैरेक्टर के लिए byte[] ऐरे का उपयोग करते थे, और दो बाइट्स प्रति कैरेक्टर के लिए char[] ऐरे का उपयोग जारी रखते थे। इसे -XX:+UseCompressedStrings फ्लैग से सक्षम किया जाता था।

मुख्य अंतर

  • अनपैकिंग/रीपैकिंग: कंप्रेस्ड स्ट्रिंग्स के विपरीत, कॉम्पैक्ट स्ट्रिंग्स को अनपैकिंग या रीपैकिंग की आवश्यकता नहीं होती, जिससे रनटाइम पर बेहतर प्रदर्शन मिलता है।
  • डिफ़ॉल्ट स्थिति: कंप्रेस्ड स्ट्रिंग्स Java 6 में डिफ़ॉल्ट रूप से सक्षम नहीं थे, जबकि कॉम्पैक्ट स्ट्रिंग्स Java 9 में डिफ़ॉल्ट रूप से सक्षम हैं (इसे -XX:-CompactStrings से निष्क्रिय किया जा सकता है)।

कमांड तुलना

// Java 6 - कंप्रेस्ड स्ट्रिंग्स सक्षम करने के लिए
-XX:+UseCompressedStrings

// Java 9 - कॉम्पैक्ट स्ट्रिंग्स निष्क्रिय करने के लिए
-XX:-CompactStrings

कॉम्पैक्ट स्ट्रिंग्स मेमोरी उपयोग को अनुकूलित करते हैं और आधुनिक एप्लिकेशंस के लिए अधिक कुशल हैं।

  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. - जावा में wait() और sleep() मेथड में अंतर?

    sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान रनिंग थ्रेड को नॉन-रनेबल स्थिति में भेज सकता है जबकि wait() मेथड एक इंस्टेंस मेथड है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके बुलाते हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावी होता है। sleep() मेथड समय समाप्त होने या interrupt() मेथड बुलाए जा

  1. Java में JTextField और JFormattedTextField के बीच क्या अंतर हैं? Java में JTextField और JFormattedTextField के बीच क्या अंतर हैं?

    एक JTextField का उपयोग सादे टेक्स्ट के लिए किया जा सकता है जबकि एक JFormattedTextField एक क्लास है जो JTextField को विस्तारित करती है और इसका उपयोग उस टेक्स्ट पर कोई भी फॉर्मेट सेट करने के लिए किया जा सकता है जो इसमें होता है जैसे फोन नंबर, ई-मेल, तारीखें आदि। JTextField एक JTextField सबसे महत्वपू