写点什么

终于讲清楚了:深入理解 Java 应用程序中 final 关键字的各种使用场景

发布于: 2021 年 03 月 05 日
终于讲清楚了:深入理解Java 应用程序中 final 关键字的各种使用场景

1,final 关键字修饰变量

在使用 final 关键字修饰变量时,又可以分为两种情况:一种是基本数据类型的变量、另一种是引用类型的变量。final 关键字在修饰基本数据类型时必须对变量赋予初始值,因此,final 关键字也经常和 static 关键字一起用来声明常量值,final 正好限制了必须赋值、static 声明了静态变量。


// 定义常量final static String str = "老王说编程";
复制代码

修饰引用变量时,该引用变量如果已经被赋值则不可以再被赋值,否则也会出现不能被编译的情况。


// 定义一个 Main 对象并且实例化final Main main = new Main();// 被 final 关键字修饰后,再次对 Main 对象进行赋值时就会出现错误main = new Main();
复制代码


2,final 关键字修饰方法

通过 final 关键字修饰的方法是不能被子类的方法重写的,相当于一个方法的功能已经被定了不能进行重写修改。一般情况下,如果一个方法的功能已经确定好不再改变了则可以使用 final 关键字修饰一下,因为 final 关键字修饰以后的方法是在程序编译的时候就被动态绑定了不用等到程序运行的时候被动态绑定,这样就大大的提高了执行的效率。


public final void method() {    System.out.println("it is final method");  }
复制代码


3,final 关键字修饰类


public final class String    implements java.io.Serializable, Comparable<String>, CharSequence { }
复制代码


public final class Integer extends Number implements Comparable<Integer> {}
复制代码


public final class Long extends Number implements Comparable<Long> {}
复制代码


4,static 关键字的不同

既然文章说明 final 关键字,难免会让人联想到 static 关键字的使用场景,毕竟,final static 成对出现的频率也是比较高的。使用 static 修饰的变量只会在类加载的时候被初始化不会因为对象的再次创建而改变。


// 在类中定义一个变量 num 接收随机数,因为只有类对象加载的时候 num 值才会初始化,// 因此,在之后 num 的值都是不会改变的static double num = Math.random();
复制代码

更多精彩前往微信公众号【老王说编程】>>>


关注微信公众号【老王说编程】,专注后端编程实战,原创文章每天更新!


发布于: 2021 年 03 月 05 日阅读数: 15
用户头像

还未添加个人签名 2021.03.03 加入

微信公众号【Python 集中营】作者,擅长后端编程语言开发,每天更新原创文章,专注于 Python实战干货技术,快来关注我吧!

评论

发布
暂无评论
终于讲清楚了:深入理解Java 应用程序中 final 关键字的各种使用场景