原生数据类型使用注意事项
- Java 中的所有浮点类型默认情况下都是 double。
不能将 double 类型的值赋给 float 类型的变量,非要这样赋值的话可以选择常见的强制类型转换。 - Java中可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋给表示范围小的变量,只能通过强制类型转换实现。
如下代码无法通过编译:
int a = 1; short b = a;
a 是 int 类型,b 是 short 类型,int 类型表示的数据范围要比 short 类型大,不能将表示范围大的值赋给表示范围小的变量。
如下代码可以通过编译:
short a = 1;int b = a;
a 是 short 类型,b 是 int 类型,int 类型表示的数据范围要比 short 类型大,可以将表示范围小的值赋给表示范围大的变量。 - 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。
比如,参与运算的变量中,有整型 int,有双精度浮点型 double,有短整型 short,那么最后的结果类型就是 double。
int a = 4; int b = 2; double c = (double)a / b;
上面的代码中,a 与 b 都是整型,但是通过(double)a 这种转换将 a 转换为一个匿名的变量,该变量的类型是 double,但是要注意:a 本身依旧是 int 类型,而不是 double 类型
,这样,(double)a / b 就是 double 类型除以 int 类型,结果自然是 double 类型。 - 取模运算中,取模的结果符号永远与被除数的符号相同
int a = 5; int b = 3; int c = a % b;
上面代码的运行结果是 2,因为 5 除以 3 结果是 1 余 2。
被除数是 5(正数),那么取模的结果是 2(正数)
int a = -5;int b = 3;int c = a % b;
上面代码的运行结果是-2,因为 -5 除以 3 结果是 -1 余 -2。
被除数是-5(负数),那么取模的结果是-2(负数)
int a = 5; int b = -3; int c = a % b;
上面代码的运行结果是2,因为 5 除以 -3 结果是 -1 余 2。
被除数是5(正数),那么取模的结果是2(正数)