在Java中,所有数学运算都是在处理所有当前值所需的最大数据类型中完成的。因此,如果您具有int * int,它将始终以整数形式进行数学运算,但将int *long作为long进行运算。
在这种情况下,将1024 * 1024 * 1024 * 80作为一个Int完成,它将溢出int。
当然,“ L”会强制其中一个操作数为Int-64(long),因此所有数学运算都将值存储为Long,因此不会发生溢出。

在Java中,所有数学运算都是在处理所有当前值所需的最大数据类型中完成的。因此,如果您具有int * int,它将始终以整数形式进行数学运算,但将int *long作为long进行运算。
在这种情况下,将1024 * 1024 * 1024 * 80作为一个Int完成,它将溢出int。
当然,“ L”会强制其中一个操作数为Int-64(long),因此所有数学运算都将值存储为Long,因此不会发生溢出。
上一篇 插件com.android.ide.eclipse.adt无法加载android类
下一篇 Android:套接字-java.net.SocketException:sendto失败:EPIPE(管道断开)