class StaticTest
{
static int i=47;
}
class StaticFun
{
static void incr()
{
StaticTest.i++;
}
}
public class MainClass
{
public static void main(String[] args)
{
System.out.println(StaticTest.i);
}
}
这段语句的运行结果为什么是47,而不是48呢?换成下面这段:
class StaticTest
{
static int i=47;
}
class StaticFun
{
static int incr()
{
return StaticTest.i+1;//如果这里用i++,结果i还是47。
}
}
public class MainClass
{
public static void main(String[] args)
{
System.out.println(StaticFun.incr());
}
}i就变48了。跟上面那段原理一样啊,奇怪
{
static int i=47;
}
class StaticFun
{
static void incr()
{
StaticTest.i++;
}
}
public class MainClass
{
public static void main(String[] args)
{
System.out.println(StaticTest.i);
}
}
这段语句的运行结果为什么是47,而不是48呢?换成下面这段:
class StaticTest
{
static int i=47;
}
class StaticFun
{
static int incr()
{
return StaticTest.i+1;//如果这里用i++,结果i还是47。
}
}
public class MainClass
{
public static void main(String[] args)
{
System.out.println(StaticFun.incr());
}
}i就变48了。跟上面那段原理一样啊,奇怪
解决方案 »
- 几道java面试题讨论
- MyEclipse 7.0汉化问题
- 用JFileChooser 将JPanel上的图形保存为 图片格式
- 关于的位移运算的问题。
- response 奇怪需求
- 运行WEB项目时出错,请问这是为什么?
- 有开发经验的26岁应届硕士对日软件外包工作,居然说年龄太大了。不懂日语且应届大专反而要的。自卑。。郁闷...迷茫。
- 我不知道Iterator的第一个无素怎么访问
- 国内那有 installanywhere 下载!?
- ResultSet里面的数据统计问题!
- 关于实现像用户修改完word文档没保存就点关闭按钮,word提示“是否保存”,如何实现?
- 新手问题!(关于java.awt.Image)
StaticFun.incr()
返回的是StaticTest.i+1
class StaticTest
{
static int i=47;
}
class StaticFun
{
static void incr()
{
StaticTest.i++;
}
}
public class MainClass
{
public static void main(String[] args)
{
StaticFun.incr();
//以前没有写上这句,所以没有调用到StaticTest.i++;
System.out.println(StaticTest.i);
}
}
因为在编译时有编译到 StaticTest.i++; ,还以为运行时也有运行到,睡了一觉才领略出楼上朋友的话。^_^ 谢谢