java final修饰符的用途

原创 2013年12月04日 10:21:31

 
final类不能被继承,没有子类,final类中的方法默认是final的。 
final方法不能被子类的方法覆盖,但可以被继承。 
final成员变量表示常量,只能被赋值一次,赋值后值不再改变。 
final不能用于修饰构造方法。
 
 
final修饰的成员变量必须由程序员显示地指定初始值,系统不会对final成员进行隐式初始化
 
如果final修饰的局部变量在定义时没有指定默认值,则可在后面代码中对该final变量赋初始值,但只能一次,不能重复
 
final修饰基本类型变量时,不能对基本类型变量重新赋值,因此基本类型变量不能被改变。
使用final修饰的引用类型变量不能被重新赋值(引用变量所引用的地址不能被改变),但可以改变引用类型变量引用对象的内容
 
可执行“宏替换”的final变量
1、使用final修饰符
2、在定义该final变量时指定了初始值
3、该初始值可以在编译时就被确定下来
 
满足上面三个条件,这个final变量就不再是一个变量,而是相当于一个直接量
编译器会把程序中所有用到该变量的地方直接替换成该变量值。
除了那种为final变量赋值时赋直接量的情况外,如果被赋的表达式只是基本的算术表达式或者字符串连接运算,没有访问普通变量,调用方法java编译器同样会将这种final变量当成“宏变量”处理。


例如:下面定义了4个final“宏变量”
final int a = 5 + 2;
final double b = 1.2/3;
final String str = "疯狂" + "java";
final String book = "疯狂java讲义" + 99.0;
 
 

final修饰符的三种使用场景

final有三种使用场景,分别是修饰变量、方法和类,无论哪种修饰,一旦声明为final类型,你将不能改变这个引用了,编译器会检查代码,如果你试图再次初始化,编译器会报错。下面我来具体说说每一种修饰场景...
  • fuyuwei2015
  • fuyuwei2015
  • 2015年07月14日 17:40
  • 1371

Java final关键字用来修饰类、方法、属性

1.final修饰类:这个类不能被继承。如:String类、StringBuffer类、System类。 2.final修饰方法:不能被重写。如:Object类的getClass()方法。 3.f...
  • u013453970
  • u013453970
  • 2015年08月12日 20:50
  • 5717

final 修饰符能提升 Java 程序的性能吗

有的文章该问题持肯定答案,甚至说能提升 50%,并将其作为提升程序性能的建议之一;而有的文章认为这是没有必要的,因为 JVM 会对这方面做优化,所以这么做是多此一举。今天特地做了个对比试验,一探究竟。...
  • zhaizu
  • zhaizu
  • 2016年01月30日 13:38
  • 1569

Java面向对象04-继承,访问控制修饰符,static和final

方法的重写 (override)1. 发生在父子类方法签名相同,方法体不同 2. 重写方法被调用时,看对象的类型不看引用的类型 3. 重写和重载的区别: 1)重载—发生在一个类中,方法...
  • Lh_0618
  • Lh_0618
  • 2016年03月18日 21:53
  • 357

java基础-final修饰符

前言学习是一个持久的是,你不能要求他立马给你什么回报,但到达了一定的量级回报自然就有了,final修饰符final关键字可以修饰类,方法,变量,用来表示他修饰的类,方法,变量不可变。 final修饰成...
  • xh_ssh
  • xh_ssh
  • 2017年12月26日 13:46
  • 37

JAVA_SE基础——42.final修饰符

高手勿喷~ final关键字可用于修饰类、变量和方法,它有“这是无法改变的”或者“最终”的含义,因此被final修饰的类、变量和方法将具有以下特征: 1.final修饰的类不能被继承。实例1 2.fi...
  • ThesCript_j
  • ThesCript_j
  • 2015年10月11日 22:53
  • 1080

java修饰符final

final修饰符 1.final修饰变量 final修饰的变量指向是不可变的,比如string类型的数据,初始化就不可以改变了 例如: public class FinalTest{ publi...
  • ksj_j
  • ksj_j
  • 2017年01月05日 20:45
  • 525

11级_Java_曹建波4.10 单例类&final修饰符&抽象类

单例类 两种写法: 1.饿汉式:不管你用不用,一开始就建立单例对象,即先初始化对象。      开发一般使用此写法,安全性    private static Single s=new Si...
  • freekiteyu
  • freekiteyu
  • 2012年04月11日 22:36
  • 1529

JAVA基础-栈与堆,static、final修饰符

Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out).        Java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、a...
  • yangchangda1
  • yangchangda1
  • 2013年06月13日 21:15
  • 681

JAVA编程之static、final修饰符

修饰符的作用是让被修饰的内容具备特定的功能, 在程序中合理使用修饰符可以在语法和功能上实现很多需要的效果。 Java 语言中的修饰符主要有 5个: static、 final、 native、 ...
  • u011001084
  • u011001084
  • 2016年10月31日 15:00
  • 340
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java final修饰符的用途
举报原因:
原因补充:

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