请问:
我在think in java 中看到这样一段话:
当编译器发现一个final方法调用命令时 它会根据自己的瑾慎判断 跳过插入程序代码这种正常方式而执行方法调用机制(将参数压入栈 跳至方法体代码处并执行 然后跳回并清理栈中的参数 处理返回值) 并且以方法体中的实际代码的副本来代替方法调用 请问:
1,执行方法调用时正常的方式是什么呢(能加入内存一起解释吗) 
2,这种非正常的方式又是怎么回事呢
谢谢

解决方案 »

  1.   

    我想你应该看英文的。 翻译后的文字一团糟! 看不懂!!
      

  2.   

    非正常的方式,可能是指是否进行函数的内联调用吧。
    而正常方式就是“将参数压入栈 跳至方法体代码处并执行 然后跳回并清理栈中的参数 处理返回值”。内联调用采用代码替换的方式,能省去正常方法调用时的开销,可能会提高效率。
    不过当函数代码过多时,或者在循环中调用内联函数,效率反而会下降。
      

  3.   

    建議你看不懂的地方去看原版
    就是一邊翻一邊看都比看翻錯的好
      

  4.   

    就是内联。
    正常的方式就是一般的参数压栈,然后跳起函数入口处开始执行的方式。
    而它所说的非正常方式,就相当于把被调函数的代码插入到调用处。
      

  5.   

    翻译得不好害了多少人啊要是英语不好 那不死定了
      

  6.   


    原版看不懂
    翻译看不明白
    咋活啊
      

  7.   

    晨星大哥说的对.
    请问:
    1,执行方法调用时正常的方式是什么呢(能加入内存一起解释吗) 
          用栈记录函数调用的过程.
    2,这种非正常的方式又是怎么回事呢 
          内联的方式,.直接把函数体里面的代码插入函数调用的地方,进行顺序执行.