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的小知识点

1,java.lang.NumberFormatException 把一个"null"的字符串转换为INTEGER 当然会出错(之所以出的不是空指针是因为你这个NULL是个字符串。 2.简单判断一个字...
  • wxwzy738
  • wxwzy738
  • 2012年07月03日 00:53
  • 1694

深入理解final关键字

在Java中,final关键字可以用来修饰数据、方法、参数、类,下面我们来了解final的关键字的用法。基本用法final 数据对于基本类型,final使数值恒定不变;而对用对象引用,final使引用...
  • IO_Field
  • IO_Field
  • 2016年10月16日 15:12
  • 2136

Java - Java中的final关键字有哪些用法?

(1)修饰类:表示该类不能被继承;(2)修饰方法:表示方法不能被重写;(3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。...
  • chimomo
  • chimomo
  • 2017年10月26日 11:46
  • 272

关于plsql的一些知识点

plsql登录时的Database是服务名,这里的服务名是安装oracle客户端和服务端时设置的数据库服务名(如:orcl),并不是设置的全局数据库的名称(如:turing)。而在web项目中jdbc...
  • zbyluxzing
  • zbyluxzing
  • 2015年12月10日 20:56
  • 223

JAVA知识点列表

1、数据类型 2、字符串 3、集合       3.1、List接口(public interface List extends Collection,public interface Collect...
  • wuliu_forever
  • wuliu_forever
  • 2016年10月13日 11:41
  • 766

Java中final关键字作用及相关误区

对于方法参数的变量定义为final,网上给出的说法基本上都说是 ”当你在方法中不需要改变作为参数的对象变量时,明确使 用final进行声明,会防止你无意的修改而影响到调用方法外的变量。“ 这是不对的!...
  • zq602316498
  • zq602316498
  • 2014年08月22日 21:46
  • 1962

Java关键字之final详解

在我们编写Java程序时总会根据需求将变量、方法、类设置成static(静态)或final(最终),熟练掌握final用法是必须的,现在我们就来详细了解final关键字! 一、final概述 概念:由...
  • zhangliangzi
  • zhangliangzi
  • 2016年01月29日 10:18
  • 925

每天一个小知识点1(less整理)

less整理 css并不能称之为一门真正的编程语言,我们一般称之为样式层叠表 (有种编程原则为DRY don't repeat yourself)  css文件比较麻烦的地方--充斥大量的重复定义(程...
  • ly285497997
  • ly285497997
  • 2015年07月13日 22:15
  • 645

final关键字的用法

一、final修饰类: 被final修饰的类,是不可以被继承的,这样做的目的可以保证该类不被修改,Java的一些核心的API都是final类,例如String、Integer、Math等 代码举例...
  • yinzhijiezhan
  • yinzhijiezhan
  • 2015年03月18日 16:05
  • 3760

java中的 final 关键字 修饰引用时的问题

final使得被修饰的变量”不变”,但是由于对象型变量的本质是“引用”,使得“不变”也有了两种含义:引用本身的不变,和引用指向的对象不变。 引用本身的不变: final StringBuffer ...
  • zgrgfr
  • zgrgfr
  • 2017年02月21日 11:21
  • 420
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中关于final关键字的几个小知识点
举报原因:
原因补充:

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