Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Sự khác biệt giữa bộ nhớ Heap và String Constant Pool trong Java


Bộ nhớ Heap (Heap Memory)

  • Heap là vùng dữ liệu runtime nơi bộ nhớ cho tất cả instance của lớp Java và mảng được cấp phát.
  • Heap được tạo khi JVM khởi động và có thể tăng/giảm kích thước trong khi ứng dụng chạy.
  • Kích thước heap có thể chỉ định bằng tùy chọn VM -Xms. Heap có thể kích thước cố định hoặc thay đổi tùy chiến lược garbage collection. Kích thước tối đa heap đặt bằng -Xmx.
  • Mặc định, kích thước heap tối đa là 64 MB.

String Constant Pool (SCP)

  • String sử dụng vị trí bộ nhớ đặc biệt để tái sử dụng đối tượng String gọi là String Constant Pool.
  • Đối tượng String tạo ra mà không dùng từ khóa new được lưu trong phần String Constant Pool của Heap.
  • Đặc điểm quan trọng của SCP: nó không tạo đối tượng String trùng lặp nếu đã có hằng số String đó trong pool.