很多源码里为什么将全局变量拷贝一份到方法体里

2020-07-16  本文已影响0人  拿拿guardian

Android学习群里有人提问,为什么下面这种场景经常在源码里看到:

private void performTraversals() {
        // cache mView since it is used so much below...
        final View host = mView;
        ......
}

其中mView是全局变量,为什么不直接引用呢?

个人理解:方法内部创建的局部变量会保存在局部变量表中,后续在方法里频繁访问的时候直接访问局部变量表就行了,而不需要访问堆。栈的速度比堆快。

上一篇 下一篇

猜你喜欢

热点阅读