被final修饰的类不可被继承;
被final修饰的方法不可以被重写;
被final修饰的变量不可以被改变,不可变的是变量的引用而非引用指向对象的内容;
被final修饰的方法,jvm会尝试为之寻求内联;
被final修饰的常量,在编译阶段会存入调用类的常量池中。
拓展说明:
因为java多态的存在,运行时调用的是哪个方法可以根据实际的子类来确定,极大增强了灵活性,但是编译期间同样也无法确定应该使用哪个方法,所以无法被内联,但是被声明为final是方法不一样,这些方法无法被重写,所以调用类A的B方法,运行时调用的必然是类A的B方法。
方法内联:最重要的优化手段之一,目的主要有两个:减少方法调用的成本,如建立栈帧等;为其他优化建立良好的基础。
领取专属 10元无门槛券
私享最新 技术干货