美文网首页
java-final关键字

java-final关键字

作者: 凯玲之恋 | 来源:发表于2018-09-11 23:57 被阅读7次

1 修饰变量

声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。

  • 对于基本类型,final 使数值不变;
  • 对于引用类型,final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。
final int x = 1;
// x = 2;  // cannot assign value to final variable 'x'
final A y = new A();
y.a = 1;

2 修饰方法

  • 声明方法不能被子类重写。
  • private 方法隐式地被指定为 final,如果在子类中定义的方法和基类中的一个 private 方法签名相同,此时子类的方法不是重写基类方法,而是在子类中定义了一个新的方法。

3 修饰类

声明类不允许被继承

4 final域的内存语义

Java多线程(十六)---final域的内存语义

5 Java匿名内部类访问外部变量,为何需被标志为final?

  • 首先,内部类被编译的时候会生成一个单独的内部类的.class文件,这个文件并不与外部类在同一class文件中。
  • 内部类并不是直接调用方法传进来的参数,而是内部类将传进来的参数通过自己的构造器备份到了自己的内部,自己内部的方法调用的实际是自己的属性而不是外部类方法的参数。
  • 因为两者从外表看起来是同一个东西,实际上却不是这样,如果内部类改掉了这些参数的值也不可能影响到原参数,然而这样却失去了参数的一致性
  • 为了避免引用值发生改变,例如被外部类的方法修改等,而导致内部类得到的值不一致,于是用final来让该引用不可改变

参考

Java 基础
Java内部类的使用小结 形参为什么要用final

相关文章

  • Java-Final关键字

    Java-Final关键字 Final成员变量 final修饰的成员变量必须由程序员显式的指定初始值 final修...

  • java-final关键字

    1 修饰变量 声明数据为常量,可以是编译时常量,也可以是在运行时被初始化后不能被改变的常量。 对于基本类型,fin...

  • java-final关键字修饰变量

    在java中,final关键字可以对类、方法以及变量进行修饰,这里对final修饰变量进行一些探讨。final修饰...

  • 深入理解Java-final关键字

    1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的“值”不可变 经常和static关键字...

  • java-final

    finalinti;//因为要在构造函数中进行初始化,所以此处便不可再给值 finalinti2=(int)(Ma...

  • Java-Final

    Final final 关键字指示常量,并且表示的这个变量只能被赋值一次,常量名使用全大写。static fina...

  • java-final笔记

    java编程思想学习笔记 编译器常量:可以在编译时执行计算式,必须 是基本数据类型、携带final关键字、使用之前...

  • 基础2-对象-关键字

    this和super注意 this关键字 super关键字 instanceof关键字 final关键字 stat...

  • 关键字与用例设计

    一、关键字(Keyword)根据架构的区分可分为以下三层结构: 底层关键字、公共层关键字、特性关键字。 底层关键字...

  • support v4/design/v7依赖的冲突的解决

    关键字:关键字:关键字:Suggestion: add 'tools:replace="android:value...

网友评论

      本文标题:java-final关键字

      本文链接:https://www.haomeiwen.com/subject/uhgpgftx.html