• Java面试题之final关键字、常量全面详解


    final关键字的基本知识(必须掌握)

    1.  final表示最终的,不可变的。也是final单词翻译过来的中文意思
    2. final修饰的方法无法被覆盖,无法被重写
    3. final修饰的类无法被继承
    4. final修饰的表示最后的不能变的,不能被修改的
    5. final修饰的局部变量一旦被赋值不能被修改,final修饰的变量只能被赋一次值
    6. final修饰的引用:
      1. 该引用只能指向一个对象,并且它只能永远的指向该对象,无法在指向其他对象,并且在该方法执行过程中,该引用指向对象之后,该对象不会被垃圾回收期回收,直到当前方法结束,才会释放空间
      2. 虽然final的引用指向对象A后,不能在重新指向对象B,但是对象A内部的数据可以被修改
    7. final修饰的实例变量,系统不管赋默认值,要求程序员自己必须手动赋值
    8. final终极结论:
      1. final修饰的实例变量,系统不负责赋默认值,要求程序员必须手动赋值。这个手动赋值,在变量后面赋值可以,在构造方法中赋值也可以
    9. static和final联合修饰的变量称为“常量”,常量名建议全部大写,每个单词之间采用下划线衔接
    1. public class Student{
    2. private int id;//学生id
    3. private String username;//学生姓名
    4. //这里就是定义了一个常量,因为一个班学生可能就是中国的,
    5. //为了不反复的去定义,可以选择直接定义常量
    6. private static final String COUNTRY_NAME = "中国";
    7. }
    1. 常量的值不能变
    2. 常量和静态变量,都是存储在方法区,并且都是在类加载时初始化

    最后的最后,就是记住final英文单词的翻译就是:最后的、最终的。也就是说一个东西都到了最后了它就是不可改变的了,只要用它修饰了都是最终的东西了,比如说写的文档或者项目有一个最终版,就相当于已经确定了,就别在改变它就好了。

  • 相关阅读:
    设计模式面试八股文
    【面经】Thoughtworks 大数据开发面经
    【安鸾靶场】实战渗透
    Tubian0.43,完善对QQ微信的支持
    【Android Gradle 插件】Gradle 构建机制 ④ ( Gradle 构建生命周期 | 初始阶段 | 配置阶段 | 执行阶段 )
    基于粒子群算法的线性规划问题求解matlab程序
    C#:实现KochSnowflake科赫雪花算法(附完整源码)
    SpringBoot设置开始启动和启动成功标识
    .Net Redis 入门到熟练
    Leetcode——最长递增子序列
  • 原文地址:https://blog.csdn.net/qq_43280993/article/details/127551179