Closed. This question is
opinion-based。它当前不接受答案。
想改善这个问题吗?更新问题,以便
editing this post用事实和引用来回答。
6年前关闭。
Improve this question
Java编译器有许多特有的行为,人们往往会偶然发现其与基元的处理有关,但这是一个偶然的偶然发现,这是一个已知的未知数。
例如
long i = 10000000000000;
生成编译器错误,因为它不检查数字是否分配给long,具体来说,解决这种情况的唯一方法是编写
long i = 10000000000000l;
有点类似
float f = 10.1;
由于编译器期望两倍,将生成编译器错误
float f = 10.1f;
是必需的。
尽管扩展原理很明显,但首先需要评估方程右侧的其他含义
short a = 2;
short b = 2;
short c = a*b;
由于Java会自动将乘法短裤提升为整数,因此也会产生编译器错误。
是否有人要添加类似的陷阱-或在其他地方编译的详尽列表可能会阻止开发人员通过反复试验来了解这些陷阱?