请考虑以下方法:
void a ()
{
int x;
boolean b = false;
if (Math.random() < 0.5)
{
x = 0;
b = true;
}
if (b)
x++;
}
Run Code Online (Sandbox Code Playgroud)
在x++
我得到的"局部变量可能尚未初始化"的错误.很明显,x永远不会被初始化.除了初始化x之外,有没有办法抑制警告?谢谢.
这个问题更具学术性,因为即使是文字最终也会存储在内存中,至少在其所使用的指令的机器代码中。仍然有一种方法可以确保标识符在编译时被删除并且不会变成本质上是一个具有内存位置和所有功能的残障变量?
好的,从Java 6开始,没有y literal后缀.考虑以下代码:
byte b = some_byte();
switch (b) {
case (byte) 0x80: ...
case (byte) 0x81: ...
Run Code Online (Sandbox Code Playgroud)
而这个替代方案:
int b = some_byte() & 0xff;
switch (b) {
case 0x80: ...
case 0x81: ...
Run Code Online (Sandbox Code Playgroud)
你会用哪个?在第一种情况下,在运行时或编译时执行(字节)强制转换?谢谢.