int
là một loại nguyên thủy. Các biến loại int
lưu trữ giá trị nhị phân thực tế cho số nguyên bạn muốn đại diện. int.parseInt("1")
không có ý nghĩa vì int
là không một lớp và do đó không có bất kỳ phương pháp.
Integer
là một lớp, không khác với bất kỳ ngôn ngữ Java nào khác. Các biến của kiểu Integer
lưu trữ tham chiếu đến Integer
các đối tượng, giống như với bất kỳ loại tham chiếu (đối tượng) nào khác. Integer.parseInt("1")
là một cuộc gọi đến phương thức tĩnh parseInt
từ lớp Integer
(lưu ý rằng phương thức này thực sự trả về một int
và không phải là một Integer
).
Để cụ thể hơn, Integer
là một lớp với một trường loại duy nhất int
. Lớp này được sử dụng khi bạn cần int
được đối xử như bất kỳ đối tượng nào khác, chẳng hạn như trong các kiểu chung hoặc tình huống mà bạn cần vô hiệu.
Lưu ý rằng mọi kiểu nguyên thủy trong Java đều có lớp trình bao bọc tương đương :
byte
có Byte
short
có Short
int
có Integer
long
có Long
boolean
có Boolean
char
có Character
float
có Float
double
có Double
Các lớp Wrapper kế thừa từ lớp Object và nguyên thủy thì không. Vì vậy, nó có thể được sử dụng trong các bộ sưu tập với tham chiếu Object hoặc với Generics.
Vì java 5, chúng tôi có autoboxing và việc chuyển đổi giữa lớp nguyên thủy và lớp bao bọc được thực hiện tự động. Cẩn thận, tuy nhiên, vì điều này có thể giới thiệu các lỗi tinh vi và các vấn đề hiệu suất; rõ ràng về chuyển đổi không bao giờ làm tổn thương.