Liệu nó có ý nghĩa để sử dụng cho ví dụ, một loại int
dữ liệu, thay vì một loại long
dữ liệu?
TUYỆT ĐỐI CÓ.
MEMORY/Disk Usage
Chỉ sử dụng một biến hoặc hai bạn sẽ không thấy sự khác biệt về hiệu suất, nhưng khi ứng dụng phát triển nó sẽ tăng tốc độ ứng dụng của bạn.
Kiểm tra this question for further info.
Cũng tìm cách để Oracle primitive type documentation bạn có thể thấy một số lời khuyên và sử dụng bộ nhớ:
type memory usage recommended for
------- --------------- ---------------------------------------------------
byte 8-bit signed The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters.
short 16-bit signed same as byte
int 32-bit signed
long 64-bit Use this data type when you need a range of values wider than those provided by int
float Use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency.
byte
:
Byte kiểu dữ liệu là một 8-bit đã ký hai của bổ sung số nguyên. Nó có giá trị tối thiểu là -128 và giá trị tối đa là 127 (bao gồm). Loại dữ liệu byte có thể hữu ích để lưu bộ nhớ trong mảng lớn, nơi tiết kiệm bộ nhớ thực sự quan trọng.
short
:
Các kiểu dữ liệu ngắn gọn là một 16-bit đã ký hai của bổ sung số nguyên. Nó có giá trị tối thiểu là -32,768 và giá trị tối đa là 32.767 (bao gồm). Như với byte, các nguyên tắc tương tự áp dụng: bạn có thể sử dụng một đoạn ngắn để lưu bộ nhớ trong các mảng lớn, trong trường hợp tiết kiệm bộ nhớ thực sự quan trọng.
int
:
Theo mặc định, kiểu int dữ liệu là một 32-bit đã ký hai của bổ sung số nguyên.
long
:
Các kiểu dữ liệu dài là một 64-bit hai của bổ sung số nguyên. Thời hạn đã ký có giá trị tối thiểu là -263 và giá trị tối đa là 263-1. (...) Sử dụng loại dữ liệu này khi bạn cần một phạm vi giá trị rộng hơn các giá trị được cung cấp bởi int.
float
:
Các kiểu dữ liệu float là một single-chính xác 32-bit IEEE 754 điểm nổi. Phạm vi giá trị của nó nằm ngoài phạm vi của cuộc thảo luận này, nhưng được xác định trong phần Các loại Nổi, Định dạng và Giá trị của Đặc tả Ngôn ngữ Java. Như với các khuyến nghị cho byte và ngắn, sử dụng một phao (thay vì gấp đôi) nếu bạn cần lưu bộ nhớ trong các mảng lớn các số dấu phẩy động. Loại dữ liệu này sẽ không bao giờ được sử dụng cho các giá trị chính xác, chẳng hạn như tiền tệ.
code dễ đọc
Ngoài ra, nó sẽ làm rõ tâm trí của bạn và mã của bạn, cho phép nói, bạn có một biến đại diện cho ID của một đối tượng, đối tượng ID này sẽ không bao giờ sử dụng số thập phân, như vậy, nếu bạn nhìn thấy trong mã của bạn:
int id;
bạn sẽ ngay bây giờ cho chắc chắn cách ID này sẽ xem xét, nếu không
double id;
không.
Ngoài ra, nếu bạn thấy:
int quantity;
double price;
bạn sẽ biết quantity
sẽ không cho phép số thập phân (chỉ có đầy đủ các đối tượng) nhưng giá sẽ làm ... Điều đó làm cho công việc của bạn (và các lập trình viên khác sẽ đọc mã của bạn) dễ dàng hơn.
Tốc độ, hiệu quả và RAM/không gian đĩa được sử dụng để ở mức phí bảo hiểm vì vậy chúng tôi đã từng lo lắng về những điều này. Những ngày này trên máy chủ và máy tính để bàn tôi thấy ít điểm trong đó. Nó có lẽ vẫn còn quan trọng trong các ứng dụng di động. –
Đó là khá mát mẻ, để biết rằng trong quá khứ, các loại dữ liệu đã được "đáng kể". Không thể nói rằng bây giờ một loại dữ liệu ngày không đáng kể, tuy nhiên tôi có thể hiểu tại sao nó lại là một vấn đề trong quá khứ. –
@PaulTomblin Vẫn khá dễ dàng để hết bộ nhớ bằng cách sử dụng cấu trúc dữ liệu nguyên thủy lớn hơn cần thiết cho một số loại ứng dụng (thừa nhận rằng tôi đã gặp phải vấn đề này trong việc giải quyết các vấn đề ví dụ, nhưng tôi có thể thấy rằng trải nghiệm thực tế với điều này). Ngoài ra, chỉ vì một ứng dụng sẽ không sử dụng hết tất cả/hầu hết bộ nhớ không có nghĩa là một máy tính chạy nhiều ứng dụng sẽ không - tôi, cho một ứng dụng, đánh giá cao một dấu chân bộ nhớ nhỏ. Và nếu bạn đang nói về dữ liệu lớn, sự khác biệt giữa 'long' và' int' có thể có giá trị tiền tệ không tầm thường gắn liền với nó. – Dukeling