কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ Compact Strings কী?

জাভা ৯ থেকে JVM স্ট্রিং অপ্টিমাইজ করে একটি নতুন ফিচার Compact Strings ব্যবহার করে। char[] অ্যারে না থাকবে, বরং একটি স্ট্রিং byte[] অ্যারে হিসেবে রিপ্রেজেন্ট করা হয়। আমরা UTF-16 বা Latin-1 ব্যবহার করে ক্যারেক্টার প্রতি এক বা দু বাইট প্রোডিউস করতে পারি। যদি JVM ডিটেক্ট করে যে স্ট্রিংটি শুধু ISO-8859-1/Latin-1 ক্যারেক্টার ধারণ করে, তবে স্ট্রিং ইন্টারন্যালি ক্যারেক্টার প্রতি এক বাইট ব্যবহার করে।

স্ট্রিং কম্প্যাক্ট স্ট্রিং দিয়ে রিপ্রেজেন্ট করা যাবে কিনা তা স্ট্রিং তৈরি হয়ার সময় ডিটেক্ট হয়। এই ফিচার ডিফল্টলি সক্রিয় থাকে এবং -XX:-CompactStrings ব্যবহার করে অফ করা যায়। এটি char[] ইমপ্লিমেন্টেশনে রিভার্ট করে না এবং সব স্ট্রিং UTF-16-এ স্টোর করে।

জাভা ৮ vs জাভা ৯ String ক্লাস স্ট্রাকচার

// 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 কী?

  2. জাভাতে StringWriter ক্লাসের গুরুত্ব

  3. জাভাতে ক্লাস/স্ট্যাটিক মেথড কী?

  4. জাভাতে স্ট্রিং তুলনা: Equals, equalsIgnoreCase এবং '==' এড়ানো