下面是两个类,唯一的不同是有一个类的全局变量加了final关键字
下面是这两个类javac之后的字节码文件内容
其中差异,一目了然。
当final变量是基本数据类型以及String类型时,如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。也就是说在用到该final变量的地方,相当于直接访问的这个常量,不需要在运行时确定。这种和C语言中的宏替换有点像。
下面是两个类,唯一的不同是有一个类的全局变量加了final关键字
下面是这两个类javac之后的字节码文件内容
其中差异,一目了然。
当final变量是基本数据类型以及String类型时,如果在编译期间能知道它的确切值,则编译器会把它当做编译期常量使用。也就是说在用到该final变量的地方,相当于直接访问的这个常量,不需要在运行时确定。这种和C语言中的宏替换有点像。
相关文章: