`
wwt_cxy001
  • 浏览: 10084 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

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

阅读更多

在 Java 语言众多的关键字中,final 关键字无疑是被提到最多的,也是在面试过程中经常被问到的知识点。今天,老王查找了很多材料,最后终于收集了关于 final 关键字比较全的知识点。首先,final 关键字可以修饰的对象有三个:一是修饰变量、二是修饰方法、三是修饰类,下面我们来看经过 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 关键字修饰以后的方法是在程序编译的时候就被动态绑定了不用等到程序运行的时候被动态绑定,这样就大大的提高了执行的效率。

publicfinalvoidmethod(){
   
    System.out.println("it is final method");
  }

3,final 关键字修饰类
被 final 关键字修饰的类一般叫 final 类,final 类是不能被继承的,这也就意味着 final 类的功能一般是比较完整的。因此,Jdk 中有很多类都是用 final 关键字进行修饰的,它们不需要被继承。其中,最常见的 String 类就是 fianl 关键字修饰的类,还有其他的装饰类等等。

public final classStringimplementsjava.io.Serializable, Comparable<String>, CharSequence {
    }
public final classIntegerextendsNumberimplementsComparable<Integer>{
   }
public final classLongextendsNumberimplementsComparable<Long>{
   }

以上包括其他的装饰器类都是被 final 关键字进行修饰的,它自身提供的方法和功能也是非常完备的。

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

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

更多精彩前往微信公众号【老王说编程】>>>
在这里插入图片描述

分享到:
评论

相关推荐

    深入理解Java中的final关键字_动力节点Java学院整理

    Java 中的 `final` 关键字是一个至关重要的概念,它被用来声明类、方法和变量,以确保它们在程序执行过程中不可更改。深入理解 `final` 关键字可以帮助开发者写出更加安全、高效的代码。 首先,`final` 关键字可以...

    深入解析Java编程中final关键字的作用

    在Java编程中,final关键字扮演...总结,final关键字在Java中主要起到了不可变性、防止继承和方法重写的作用,有助于代码的维护、性能优化和安全性。理解并恰当使用final,可以帮助开发者创建更加健壮和可预测的代码。

    Java零基础-final关键字.md

    本文主要介绍了Java中final关键字的概念及其在实际编程中的应用。读者将能够理解final关键字的基本定义、用途及作用范围,并且掌握如何在不同的编程场景中合理使用它。此外,文章还探讨了final关键字在构造方法、类...

    Java final关键字

    在这个学习demo中,我们将深入理解`final`关键字的各种用法及其背后的原理。 首先,`final`关键字用于变量。当一个变量被声明为`final`时,它的值一旦被初始化后就不能再改变。这适用于局部变量、成员变量(包括...

    Java关键字final、static使用总结

    "Java关键字final、static使用总结" 在 Java 编程语言中,final 和 static 是两个非常...final 和 static 关键字都是 Java 编程语言中的重要概念,了解它们的使用方法和限制对编写高效、可靠的 Java 程序非常重要。

    Java中的final关键字

    总的来说,`final`关键字是Java中的一种强约束,它用于防止代码被意外修改,增强程序的稳定性和可预测性。理解并适当地使用`final`可以帮助编写出更加安全、高效且易于维护的代码。在实际开发中,应根据需求灵活运用...

    【Java语言基础】final关键字

    【Java语言基础】final关键字 修饰词:final 最终的最后的 final关键字可用于修饰符,变量和方法,用于表示它修饰的类,方法和方法不可改变。 final 最终的最后的 final修饰变量时,表示该变量一旦获得了初始值之后...

    电子教材:《Java语言程序设计-关键字》pdf版(高清晰)

    了解Java中的关键字对于学习这门语言至关重要,它可以帮助程序员更好地理解和应用Java语言的各种特性。 #### 二、Java关键字列表及解释 根据《Java语言程序设计-关键字》pdf版电子教材,下面列出了Java语言中的所有...

    final关键字的使用.mp4

    final关键字的使用f

    Java中final关键字详解

    另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法。 主要介绍:一.final关键字的基本用法。二.深入理解final关键字 一.final关键字的基本用法  在Java中,final关键字可以用来...

    Java编程中static和final关键字的陷阱.pdf

    Java编程中static和final关键字的陷阱是Java开发中两个重要的关键字,但是它们的使用也存在一些陷阱,需要开发者注意掌握。 static关键字可以用于修饰属性、方法和类。static关键字修饰的成员变量称为静态成员变量...

    浅析Java中的final关键字Java开发Java经验技

    本篇文章将深入探讨`final`关键字在Java中的使用和重要性,帮助开发者更好地理解和应用这一关键特性。 首先,`final`关键字用于声明变量。当一个变量被声明为`final`时,它的值一旦被初始化,就不能再改变。这在...

    Java并发--final关键字.docx

    以下将详细阐述`final`关键字在不同场景下的应用及其特点。 **一、final修饰变量** 1. **成员变量**:成员变量分为类变量(`static`修饰)和实例变量。对于类变量,可以在声明时直接初始化或在静态初始化块中赋值...

    Java中的final关键字深入理解

    Java中的`final`关键字是一个非常重要的概念,它用于在编程中实现不同的限制和特性。`final`关键字可以应用于以下几个方面: 1. **final变量**:当一个变量被声明为`final`时,它成为了一个不可修改的常量。这意味...

    java中final关键字和static关键字详细用法

    Java中的`final`和`static`关键字是编程中非常重要的两个修饰符,它们分别用于不同的场景,以确保代码的稳定性和高效性。 首先,`final`关键字主要用于表示不可变性。它可以用来修饰类、方法和变量。对于类,如果一...

    final关键字详细解读

    下面将详细解读final关键字在不同场景下的应用和含义。 1. final修饰类:当使用final关键字修饰一个类时,该类不能被其他类继承。这一特性在Java标准库中有所体现,例如String类、System类、Math类和Scanner类都是...

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    Java中的`final`关键字、抽象类和接口是面向对象编程中的核心概念,它们共同构建了类的层次结构和多态性。以下是对这些概念的详细解释: 1. **final关键字** - `final`关键字用于确保变量的值一旦被赋值后就不能...

    Java中的final关键字:不可变性与更多应用.md

    Java中的final关键字:不可变性与更多应用

    Java中final关键字的使用与注意总结

    Java中final关键字的使用与注意总结 Java中final关键字的使用与注意总结主要给大家介绍了关于Java中final关键字的相关资料,对大家的学习或者使用Java具有一定的参考学习价值。下面我们将详细介绍final关键字的...

Global site tag (gtag.js) - Google Analytics