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

जावा 9 में कॉम्पैक्ट स्ट्रिंग्स क्या हैं?


Java 9 के बाद से, JVM कॉम्पैक्ट नामक एक नई सुविधा का उपयोग करके स्ट्रिंग्स को अनुकूलित करता है। स्ट्रिंग्स . char[ . होने के बजाय ] सरणी , एक स्ट्रिंग को बाइट[] . के रूप में दर्शाया जा सकता है सरणी। हम या तो UTF-16 . का उपयोग कर सकते हैं या लैटिन-1 प्रति वर्ण एक या दो बाइट उत्पन्न करने के लिए। यदि JVM को पता चलता है कि स्ट्रिंग में केवल ISO-8859-1/Latin-1 है वर्ण, फिर स्ट्रिंग आंतरिक रूप से प्रति वर्ण एक बाइट का उपयोग करती है।

स्ट्रिंग को एक कॉम्पैक्ट स्ट्रिंग के साथ प्रदर्शित किया जा सकता है या नहीं पता लगाया जाता है जब स्ट्रिंग बनाई जाती है। यह सुविधा डिफ़ॉल्ट रूप से सक्षम है और -XX:-CompactStrings . का उपयोग करके स्विच ऑफ हो जाती है . यह एक char[] . पर वापस नहीं आता है कार्यान्वयन और सभी स्ट्रिंग्स को UTF-16. . के रूप में संग्रहीत करता है

// In Java 8
public class String {
   private final char[] value; // Stores characters in the string
      ---------
}

// In Java 9
public class String {
   private final byte[] value; // Stores characters in the string
   private final byte coder; // a flag whether to use 1 byte per character or 2 bytes per characters for this string

      ---------
}

  1. जावा में StringIndexOutOfBoundsException क्या है?

    जावा में वर्णों के अनुक्रम को संग्रहीत करने के लिए स्ट्रिंग्स का उपयोग किया जाता है, उन्हें वस्तुओं के रूप में माना जाता है। java.lang पैकेज का स्ट्रिंग वर्ग एक स्ट्रिंग का प्रतिनिधित्व करता है। आप या तो नए कीवर्ड (किसी भी अन्य ऑब्जेक्ट की तरह) का उपयोग करके या शाब्दिक (किसी भी अन्य आदिम डेटाटाइप क

  1. जावा में क्लास/स्टेटिक तरीके क्या हैं?

    कक्षा/एस अस्थिर विधियाँ वे विधियाँ हैं जिन्हें कक्षा में ही कहा जाता है, न कि किसी विशिष्ट वस्तु उदाहरण पर। स्थैतिक संशोधक सुनिश्चित करता है कि कार्यान्वयन सभी वर्ग उदाहरणों में समान है। वर्ग/स्थिर विधियों को बिना तात्कालिकता के . कहा जाता है इसका मतलब है कि स्थैतिक विधियाँ केवल कक्षा के अन्य स्थिर

  1. जावा में स्ट्रिंग्स की तुलना कैसे करें

    समानता के लिए स्ट्रिंग्स की तुलना करने के लिए, आपको स्ट्रिंग ऑब्जेक्ट के equals का उपयोग करना चाहिए या equalsIgnoreCase तरीके। हम यह भी देखेंगे कि हमें == . का उपयोग क्यों नहीं करना चाहिए स्ट्रिंग की तुलना करने के लिए ऑपरेटर। स्ट्रिंग्स की बराबरी() विधि से तुलना करना अगर हमें जावा में दो स्ट्रिंग्स