Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Compact Strings และ Compressed Strings ใน Java 9

Compact Strings ถูกนำมารวมใน Java 9 เพื่อแทนที่ Compressed Strings ของ Java 6 การใช้งาน Compact Strings ใช้ byte[] แทน char[] และมีฟิลด์ coder ใหม่เพื่อระบุว่าสตริงอยู่ในรูปแบบ LATIN1 หรือ UTF16 ในขณะที่ Compressed Strings ใน Java 6 ใช้ byte[] สำหรับตัวอักษร 1 ไบต์ และยังคงใช้ char[] สำหรับ 2 ไบต์ ต่อตัวอักษร ซึ่งสามารถเปิดใช้งานได้ด้วย -XX:+UseCompressedStrings

ไม่เหมือน Compressed Strings ที่ต้องทำ un-packing และ re-packing Compact Strings จึงให้ประสิทธิภาพรันไทม์ที่ดีกว่า

การเปิดใช้งาน

Compressed Strings ไม่ได้เปิดใช้งานโดยค่าเริ่มต้นใน Java 6 ต้องระบุอย่างชัดเจน:

-XX:+UseCompressedStrings

Compact Strings เปิดใช้งานโดยค่าเริ่มต้นใน Java 9 สามารถปิดได้ด้วย:

-XX:-CompactStrings

สรุปความแตกต่างหลัก

  • การจัดเก็บ: Compact Strings ใช้ byte[] พร้อม coder flag ส่วน Compressed Strings ใช้ byte[] หรือ char[] สลับกัน
  • ประสิทธิภาพ: Compact Strings ไม่ต้อง unpack/repack จึงเร็วกว่า
  • ค่าเริ่มต้น: Compact Strings เปิดอยู่แล้วใน Java 9