//第一段代码
int i;
String s;public void test1(){
  i = 10;
  s = i + "";
}
//第二段代码
String s;
public void test2(){
  s = 10 + "";
}第一个问题以上这两句话是不是一样
第二个问题为什么在内存检测器里看到的第一段代码在每次被执行的时候内存都在不断上涨而第二段代码不会

解决方案 »

  1.   

    结果是一样的.第二个问题: 估计第二段代码编译的时候被优化了, 等价于 s = "10"
      

  2.   

    结果是一样的. 
    第二段少了一个变量,少了内存空间,第1段执行次数越多占的空间越大
      

  3.   

    小弟还是个菜鸟能不能请楼上解释一下,第一段为什么每执行一次会开辟一个新的空间那,而不是覆盖在原有的内存空间上
      

  4.   

    结果是一样的   
    s = 10 + ""; 其实在编译的时候就是s = 10;  是编译优化的结果吧
      

  5.   

    我觉得就是这个意思吧,第一个有变量i,占用内存空间的!