Trên trang này blog post, người ta nói rằng việc sử dụng bộ nhớ tối thiểu của một Chuỗi là:Tại sao sử dụng bộ nhớ String của Java lại cao?
8 * (int) ((((no chars) * 2) + 45)/8)
bytes.
Vì vậy, đối với chuỗi "Máy tính Apple", mức sử dụng bộ nhớ tối thiểu sẽ là 72 byte.
Thậm chí nếu tôi có 10.000 đối tượng chuỗi có chiều dài gấp đôi, việc sử dụng bộ nhớ sẽ nhỏ hơn 2Mb, điều này hoàn toàn không nhiều. Vậy điều đó có nghĩa là tôi đang đánh giá thấp số lượng Strings hiện diện trong một ứng dụng doanh nghiệp, hay là công thức sai?
Cảm ơn
Vì Chuỗi là bất biến, các thao tác bạn thực hiện trên thực tế có thể * lưu * không gian, vì các chuỗi có thể chia sẻ bộ nhớ. – Thilo
Nhưng mỗi khi bạn tạo một đối tượng 'String' mới, nó sẽ không chiếm nhiều bộ nhớ hơn? –
Nguyên thủy sử dụng 32 byte? Tôi nghĩ bạn có nghĩa là bit. :) – Makoto