共计 1178 个字符,预计需要花费 3 分钟才能阅读完成。
最近回头看了看以前的最基础的,发现其中有很知识点很有乐趣乐趣很多,顺便问了下问了一下其他朋友,几乎全军覆灭。我们来看看一下知识点,你了解多少?
long l = 1; 对 or 错
long l = 1;
// 对吗
有人说对,有人说错。说错的人说
long l = 1L;
// 这样才对
你的理解呢?
double d = 1; 对 or 错
double d = 1;
// 对吗
有人说对,有人说错。说错的人说
double d = 1d;
// 这样才对,当是整数时后面必须加 d 或 D, 小数时无所谓如:
//double d = 1.0; 这样是对的
你的理解呢?
float f = 1; 对 or 错
float f = 1;
// 对吗
有人说对,有人说错。说错的人说
float f = 1f;
// 这样才对,和 Duble 雷同, 当是整数时后面必须加 f 或 F, 小数时无所谓如:
//float f = 1.0; 这样是对的
你的理解呢?
Long l = 1; 对 or 错
Long l = 1;
// 对吗
有人说对,有人说错。说错的人说
Long l = 1L;
// 这样才对
你的理解呢?
Double d = 1; 对 or 错
Double d = 1;
// 对吗
有人说对,有人说错。说错的人说
Double d = 1d;
// 这样才对,当是整数时后面必须加 d 或 D, 小数时无所谓如:
//Double d = 1.0; 这样是对的
你的理解呢?
Float f = 1; 对 or 错
Float f = 1;
// 对吗
有人说对,有人说错。说错的人说
Float f = 1f;
// 这样才对,和 Duble 雷同, 当是整数时后面必须加 f 或 F, 小数时无所谓如:
//Float f = 1.0; 这样是对的
你的理解呢?
6 个问题你的答案是什么,我想你心中已有答案,带着你的答案,我们一起去揭秘上面 6 个问题,看看和你想的是不是一样。long l = 1;double d = 1; float f = 1;
都是对的,为什么呢?因为 java 默认整数时 int 类型,再加上 java 的向上转型,也就是说这样定义是符合 java 规范的。
那么 long l = 2147483648;
这样对吗?为什么要写 2147483648 呢?因为 2147483647 是 int 的最大值,知道答案了吗?错的,因为他超过了 int 的最大值,long l = 2147483648L
这样就对了。
Long l = 1;Double d = 1; Float f = 1;
都是错的。为什么呢?Double 里面的装箱,只会装进 double 类型的,而 1 默认是 int 类型所以会报错。Double d = 1.0; Float f = 1.0
对吗?Double d = 1.0;
这个是对的,因为 java 默认小数是 double 类型,所以是正确的。但是 Float f = 1.0
是错了。因为 double 的精度高于 float 无法向下转型。所以 float f = 1.0f; Float f = 1.0f;
这样定义才是对的。
最后留下一个是思考题:
int i = 2147483647;
i = i + 1;
System.out.println(i);
结果是什么呢?自己试一下!!!