“嗨,阿米戈!”

“嗨,艾莉!”

“今天我心情很好,所以我想告诉你一些有趣的事情。从 Java 的类型系统如何处理原始类型开始说起。”

“在 Java 中,每一个对象和每一个变量都有自己的预设不可改变类型。编译程序时确定原始变量的类型,但是对象的类型是在创建时确定。新创建的对象和/或变量的类型在其生命周期内保持不变。下面是一个示例:”

Java 语言代码 说明
int a = 11;
int b = 5;
int c = a / b; // c == 2
a / b – 表示整数除法。答案是 2。除法运算的余数会被忽略。
int a = 13;
int b = 5;
int d = a % b; // d == 3
d 将存储 a / b 整数除法的余数。余数是 3。

“你要记住一些有趣的细微差别。”

“首先,引用变量并不总是指向它同类型的值。”

“第二,两种不同类型的变量交互时,必须首先将它们转换为相同类型。”

“除法呢?如果将 1 除以 3,我们将得到 0.333(3)。对不?”

“不,错了。当我们将两个整数相除时,结果也是一个整数。如果将 5 除以 3,答案将为 1,余数是 2。余数会被忽略。”

“如果将 1 除以 3,我们将得到 0(余数是 1,会被忽略)。”

“但是如果我想获得 0.333 怎么办?”

“在 Java 中,执行除法之前,最好乘以浮点数一 (1.0) 将数字转换为浮点(小数)类型。”

Java 语言代码 说明
int a = 1/3;
a 将为 0
double d = 1/3;
 d 将为 0.0
double d = 1.0 / 3;
d 将为 0.333(3)
double d = 1 / 3.0;
d 将为 0.333(3)
int a = 5, b = 7;
double d = (a * 1.0) / b;
d 将为 0.7142857142857143

“明白了。”