【Java基础知识】final和static

ops/2024/12/12 22:56:48/

一、final 

   final 关键字是 Java 中的一个修饰符,用于表示某个变量、方法或者类不能被修改。 final 可以用于修饰类、方法和变量(局部变量,成员变量)。

1、数据:

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

  对于基本类型, final 使数值不变;

  对于引用类型, final 使引用不变,也就不能引用其它对象,但是被引用的对象本身是可以修改的。

2、方法:

声明方法不能被子类重写。

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

3、类:

声明类不允许被继承。

 

二、static 

     static 关键字是 Java 中的一个关键字,用于表示某个对象属于类本身而不是属于类的实例。在 Java 中,所有的静态字段和静态方法都是属于类本身的,而不是属于类的实例。静态字段和静态方法可以直接通过类名来访问,而不需要创建类的实例。

1、静态变量:

静态变量:又称为类变量,也就是说这个变量属于类的,类所有的实例都共享静态变量,可以直接通过类名来访问它;静态变量在内存中只存在一份。实例变量:每创建一个实例就会产生一个实例变量,它与该实例同生共死。

2、静态方法:

静态方法在类加载的时候就存在了,它不依赖于任何实例。所以静态方法必须有实现,也就是说它不能是抽象方法( abstract )。只能访问所属类的静态字段和静态方法,方法中不能有 this 和 super 关键字。

3、静态语句块:

静态语句块在类初始化时运行一次。


4、静态内部类:
非静态内部类依赖于外部类的实例,而静态
内部类不需要。
静态内部类不能访问外部类的非静态的变量
和方法。                                                                  
5、静态导包◇
在使用静态变量和方法时不用再指ClassName ,从而简化代码,但可读性大大降低。                      
6、初始化顺序:
    静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代码中的顺序。
    最后才是构造函数的初始化。
    存在继承的情况下,初始化顺序为:             父类(静态变量、静态语句块)                       子类(静态变量、静态语句块)                         父类(实例变量、普通语句块)
 父类(构造函数)
 子类(实例变量、普通语句块)
 子类(构造函数)

△注意事项

      final 关键字、 static 关键字是 Java 中常用的关键字和特性◇使用时需要注意以下几点:   final 关键字用于修饰类、方法和变量,表示不能被修改。如果一个类被 final 修饰,那么它不能被继承;如果一个方法被 final 修饰,那么它不能被重写;如果一个变量被 final 修饰,那么它不能被重新赋值。因此,在使用 final 关键字时需要谨慎,确保不会影响程序的正确性。

 static 关键字用于修饰类或方法,表示属于类本身而不是属于类的实例。静态成员可以在不创建类的实例的情况下直接访问,而实例成员必须在创建实例后才能访问。因此,在使用 static 关键字时需要考虑是否需要使用静态成员。

   在 Java 中,所有的对象都是通过引用来访问的。当一个对象被 final 修饰时,它的引用只能指向一个特定的对象,不能再指向其他的对象。因此,在使用 final 关键字时需要注意对象引用的问题,避免出现内存泄漏等问题。                    
  在 Java 中,所有的静态成员都共享同一个内存空间。当多个静态成员同时被修改时,可能会导致数据不一致的问题。因此,在使用 static 关键字时需要注意线程安全的问题,避免出现并发访问导致的数据不一致问题。

58f4b5d03edd40a7b49196ed4d37f670.jpg

 


http://www.ppmy.cn/ops/141366.html

相关文章

虚幻引擎的工程目录结构

虚幻引擎的工程目录结构如下: .idea/.vs:用于IDE(如IntelliJ IDEA或Visual Studio)的项目配置文件,包含工程设置和解决方案文件。 Binaries:存放编译后的可执行文件和相关的动态链接库(DLL&…

分布式光伏电站中电能质量如何监测和治理?

1.概述 随着全球对可再生能源需求的增加,分布式光伏电站的建设和发展迅速。然而,分布式光伏电站的运行过程中面临着一系列问题,比如导致企业关口计量点功率因数过低、谐波污染等。这些问题不仅影响光伏电站自身的运行效率,还会对…

uniapp中的@tap与@click:点击事件的微妙差异

在uniapp的开发过程中,我们经常会遇到两种点击事件:tap和click。虽然它们都是点击事件,但在实际使用中却存在一些微妙的差异。本文将详细解析这两种事件的区别,帮助开发者更好地理解和应用。 首先,让我们来看看它们的…

【Linux】grep命令

grep 是一个非常强大的文本搜索工具,它允许你搜索文件中的文本行,并输出匹配的行。以下是一些基本的 grep 命令使用案例,以及它们的解释: 1. 基础搜索 命令: grep "search_term" filename 解释&#xff…

CSS系列(5)-- Grid 布局详解

前端技术探索系列:CSS Grid 布局详解 📏 致读者:掌握终极布局系统 👋 前端开发者们, 今天我们将深入探讨 CSS Grid 布局,这是最强大的 CSS 布局系统。通过本文,你将掌握如何使用 Grid 创建复…

#HarmonyOS篇: 学习资料

学习课堂 https://developer.huawei.com/consumer/cn/training/ https://developer.huawei.com/consumer/cn/doc/start/training-introduction-0000001181392655 华为开发者指导手册 https://developer.huawei.com/consumer/cn/doc/start/guidebook-0000001056335559 博客…

真正高水平的一流领导,从不和员工打成一片,这3点原因太真实

真正高水平的一流领导,从不和员工打成一片,这3点原因太真实 第一个:分化团队 在团队管理过程中,如果人不多,那还好。 可一旦人数多了,领导就不可能面面俱到,顾及到每一个人。 肯定会出现&am…

科技潮头浪接天,一桥飞架两界连。EthernetIP转Profinet互译连

本案例介绍的是西门子1200PLC通过稳联技术PROFINET转EtherNetIP网关(WL-ABC2006)连接HCS-6100系统配置案例。 打开稳联技术Ethernetip转profient网关(WL-ABC2006)配置软件,因为网关作为EtherNetIP从站,所以选择PN2EIP。设置网关Pr…