Java中关于final关键字的几个小知识点

原创 2017年01月03日 20:44:27

参考资料来自《Java编程思想》

1.final方法会提高运行效率

2.private方法会被隐式地指定为final方法

3.final类中所有的方法都已经是指定为final方法

关于第一点的一些解释摘抄:

final修饰的函数会被编译器优化,优化的结果是减少了函数调用的次数。如何实现的,举个例子给你看: 

public class Test{ 
final void func(){System.out.println("g");}; 
public void main(String[] args){ 
for(int j=0;j<1000;j++)   
func(); 
}
} 


经过编译器优化之后,这个类变成了相当于这样写: 

public class Test{ 
final void func(){System.out.println("g");}; 
public void main(String[] args){ 
for(int j=0;j<1000;j++)  
{System.out.println("g");} 
}
} 


看出来区别了吧?编译器直接将func的函数体内嵌到了调用函数的地方,这样的结果是节省了1000次函数调用,当然编译器处理成字节码,只是我们可以想象成这样,看个明白。 
不过,当函数体太长的话,用final可能适得其反,因为经过编译器内嵌之后代码长度大大增加,于是就增加了jvm解释字节码的时间。


相关文章推荐

java复用类(组合、继承,代理,final关键字,初始化顺序) 知识点的总结

java复用类(组合、继承,代理,final关键字,初始化顺序) 知识点的总结 总结是源自java编程思想第四版 继承 在新的类中产生现有类的对象,这种方法称为 组合 在使用extends关键字...

Java关键知识点 - Java final关键字到底修饰了什么?

final 使得被修饰的变量“不变”,但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身不变和引用所指的对象不变。...

Java中关于final修饰符的几个知识点

final修饰符在java中经常使用,今天我就将使用final修饰符的点记录一下,一来给自己总结,二来也帮助需要的人 final首先是java中的一个关键字,能够修饰变量,方法以及类 当用final修...

谜题72:final相关的几个知识点

本谜题旨在检验当你试图隐藏一个final域时将要发生的事情。下面的程序将做些什么呢? class Jeopardy { public static final String PRIZE = ...

java 几个关键字,final,static

java经常用的几个关键字 final:

【Java知识点总结】 final关键字与抽象类

final关键字: 概念: 学习了继承我们发现继承有一个弊端,就是它会打破封装性;如果不让其他类继承该类,就不会有重写了,→可以通过Java中的几个关键字来实现,final(最终化)。 fina...

Java知识点整理:第七章:static关键字、final关键字、抽象类 、接口、Object类

1.static关键字 1.static可以修饰属性,方法,内部类,代码块  static修饰属性:   a.static修饰的属性是类级别的.属于类全体对象共享的变量.只有一份.  b....

Java final 修饰符知识点总结

final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。 final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类方法和对象方法)和类。 ...

学java i/o库要掌握的三个关键知识点

大家讨论java i/o库很久了, PaleSting也刚发了系列文章,但我估计还是有些读者会觉得java i/o库难以琢磨,所以也来凑凑热闹,说说我认为的学习java i/o库要掌握的三个关键知识点...

java关键知识点

1.初始化数组: int[] array = new int[12];
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中关于final关键字的几个小知识点
举报原因:
原因补充:

(最多只允许输入30个字)