final与性能

在SWT的snippets中,final关键字出现的非常频繁,让我迷惑的是,很多时候final会用于修饰main函数中创建的widget。后来经过资料查询才知道,这么做会带来性能上的提升,也就是说,final修饰的局部变量同样可以被编译器优化成为inline变量。

要注意的是,尽量在仅做一次调用的类中使用,不要在会重复使用的类中大量使用fianl修饰符,否则会造成大量的资源浪费。

另外,局部变量不会涉及继承错位的问题。所谓继承错位,就是例如,编译时的ClassA有final变量,其子类编译时得到inline的该变量,但运行时ClassA的变量取消了final修饰,因某些原因其子类未能重新编译,这将造成很严重的错误。

你可能感兴趣的:(final)