我们通过 javap -v xxx.class ,可看到对应class文件的字节码文件信息。
当一个元素被 final 修饰时,实际被 ACC_FINAL 标识。
下面查看hotspot源码看下底层实现:
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/91b61f678a19/src/share/vm/utilities/accessFlags.hpp
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/91b61f678a19/src/share/vm/oops/klass.hpp
字段被final修饰的,设置不可重写
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/91b61f678a19/src/share/vm/opto/compile.hpp
类被final修饰,不能被继承
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/91b61f678a19/src/share/vm/classfile/classFileParser.cpp