如果一个方法没有被重写并且很短,编译器就能对他进行优化处理,这个过程被称为内联。(inlining).
如:内联调用e.getName(),将被替换为访问e.name属性。这是有意义的的改进:缘于CUP在处理调用方法的指令时,使用的分支转义会扰乱预取指令的策略。然而,如果getName被子类覆盖,那么编译器就无法知道覆盖的代码要做何操作,就取消内联处理。(当子类被虚拟机加载时).
如果一个方法没有被重写并且很短,编译器就能对他进行优化处理,这个过程被称为内联。(inlining).
如:内联调用e.getName(),将被替换为访问e.name属性。这是有意义的的改进:缘于CUP在处理调用方法的指令时,使用的分支转义会扰乱预取指令的策略。然而,如果getName被子类覆盖,那么编译器就无法知道覆盖的代码要做何操作,就取消内联处理。(当子类被虚拟机加载时).