Java基础之 final修饰符

版权声明:来至蜀山雪松 https://blog.csdn.net/jianxia801/article/details/87306947

目录

1、final修饰符特性

1.1、可修饰内容

1.2、被修饰内容特征

2、应用场景

3、final知识要点总结

4、面试询问关键点


1、final修饰符特性

1.1、可修饰内容

      final在Java中是一个保留的关键字,final可修饰:类、方法、类成员变量、方法体内的本地变量 

     一旦你将引用声明作final,你将不能改变这个引用了,编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误。

1.2、被修饰内容特征

 final修饰的类:

         final类通常功能是完整的,它们不能被继承。Java的JDK之中有许多类是final的,譬如String、System、Interger以及其他包装类。如下图所示:动物静态类,Cat(猫类)无法继承动物静态类的

 final修饰的方法:

        不能被重写, 一个类的private方法会隐式的被指定为final方法。 如果父类中有final修饰的方法,那么子类不能去重写。

 final修饰的成员变量:

  1. 必须要赋初始值,而且是只能初始化一次。             
  2. 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。
  3. 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。
  4. 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。

2、应用场景

    final修饰符 一般使用在常量类较多,final修饰常量: 如移动端访问接口的域名地址不可变的,以及一些系统常量和业务常量等等。final变量经常和static关键字一起使用,作为常量。

public class TaskConstant {

	/**线上培训*/
	public static int TASK_TYPE_ONLINE = 1;
	
	/**线下培训*/
	public static int TASK_TYPE_OFFLINE = 2;
	
	/**新手任务*/
	public static int TASK_TYPE_NEWER = 3;
	
	/**app中待办事项的类型   1--新手任务, 2--职业规划, 3--培训任务*/
	public static int APP_TODO_TYPE_NEWER = 1;
	
	public static int APP_TODO_TYPE_ZYGH = 2;
	
	public static int APP_TODO_TYPE_TASK = 3;
}

3、final知识要点总结

  1.  final关键字可以用于成员变量、本地变量、方法以及类。
  2.  final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。
  3.  你不能够对final变量再次赋值。
  4.  本地变量必须在声明时赋值。
  5.   final方法不能被重写。
  6.  final类不能被继承。
  7.  将类、方法、变量声明为final能够提高性能,这样JVM就有机会进行估计,然后优化。
  8.  按照Java代码惯例,final变量就是常量,而且通常常量名要大写:

4、面试询问关键点

  1. 被final修饰的类不可以被继承
  2. 被final修饰的方法不可以被重写
  3. 被final修饰的变量不可以被改变
  4. 被final应用于对象引用时,而不是基本类型时,其含义让人疑惑。对基本类型使用final不能改变的是他的数值。而对于对象引用,不能改变的是他的引用,而对象本身是可以修改的

参考文章:

    https://www.cnblogs.com/fangpengchengbupter/p/7858510.html

    http://baijiahao.baidu.com/s?id=1601084106055683243&wfr=spider&for=pc

猜你喜欢

转载自blog.csdn.net/jianxia801/article/details/87306947
今日推荐