"Chào, Amigo!"

"Chào, Ellie!"

"Hôm nay tôi đang có tâm trạng tốt, vì vậy tôi muốn kể cho bạn nghe một điều gì đó thú vị. Tôi sẽ bắt đầu với cách hệ thống kiểu của Java xử lý các kiểu nguyên thủy."

" Trong Java, mỗi đối tượng và mỗi biến có loại không thể thay đổi được đặt trước riêng. Loại của biến nguyên thủy được xác định khi chương trình được biên dịch, nhưng loại của đối tượng được xác định khi nó được tạo. Loại của đối tượng và/hoặc biến mới được tạo không thay đổi trong suốt vòng đời của nó. Đây là một ví dụ:"

mã Java Sự miêu tả
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b– đại diện cho phép chia số nguyên. Câu trả lời là hai. Phần còn lại từ hoạt động phân chia đơn giản là bị bỏ qua.
int a = 13;
int b = 5;
int d = a % b; // d == 3
dsẽ lưu phần còn lại của phép chia số nguyên acho b. Số dư là 3.

"Có một vài sắc thái thú vị mà bạn cần nhớ."

"Đầu tiên, một biến tham chiếu không phải lúc nào cũng trỏ đến một giá trị có cùng loại với nó."

"Thứ hai, khi các biến có hai loại khác nhau tương tác với nhau, trước tiên chúng phải được chuyển đổi thành cùng một loại."

"Còn phép chia thì sao? Nếu chúng ta chia 1 cho 3, chúng ta sẽ nhận được 0,333 (3). Đúng không?"

"Không, điều đó không đúng. Khi chúng ta chia hai số nguyên, kết quả cũng là một số nguyên. Nếu bạn chia 5 cho 3, câu trả lời sẽ là 1 với số dư là 2. Và phần còn lại sẽ bị bỏ qua."

"Nếu chúng tôi chia 1 cho 3, chúng tôi sẽ nhận được 0 (với lời nhắc 1, sẽ bị bỏ qua)."

"Nhưng tôi phải làm gì nếu tôi muốn nhận được 0,333?"

"Trong Java, trước khi thực hiện phép chia, tốt nhất là chuyển đổi một số thành loại dấu phẩy động (phân số) bằng cách nhân với số dấu phẩy động một (1.0)."

mã Java Sự miêu tả
int a = 1/3;
asẽ là 0
double d = 1/3;
 d sẽ là 0,0
double d = 1.0 / 3;
dsẽ là 0,333(3)
double d = 1 / 3.0;
dsẽ là 0,333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
dsẽ là 0,7142857142857143

"Hiểu rồi."