当前位置: 首页 > 面试题库 >

静态和最终之间的区别?

凌朗
2023-03-14
问题内容

我一直在 java中的staticfinal关键字之间感到困惑。 __

它们有何不同?


问题答案:

static关键字可以在4种情况下使用

  • 静态变量
  • 静态方法
  • 静态代码块
  • 静态嵌套类

首先让我们看一下静态变量和静态方法。

静态变量

  • 它是一个属于类而不属于对象(实例)的变量。
  • 静态变量在执行开始时仅初始化一次。在初始化任何实例变量之前,将首先初始化这些变量。
  • 该类的所有实例共享的单个副本。
  • 静态变量可以通过类名直接访问,不需要任何对象。
  • 句法: Class.variable

静态方法

  • 它是属于类而不属于对象(实例)的方法。
  • 静态方法只能访问静态数据。除非具有/创建该类的实例,否则它不能访问非静态数据(实例变量)。
  • 静态方法只能调用其他静态方法,而不能从其调用非静态方法,除非它具有/创建了该类的实例
  • 静态方法可以通过类名直接访问,不需要任何对象。
  • 句法: Class.methodName()
  • 静态方法无论如何都不能引用thissuper关键字。

静态类

Java还具有“静态嵌套类”。静态嵌套类只是一个没有隐式引用外部类实例的类。

静态嵌套类可以具有实例方法和静态方法。

Java中没有顶级静态类。

边注:

主要方法是static因为在进行任何实例化之前,应用程序必须可以访问它才能运行。

final 关键字在几种不同的上下文中用于定义一个实体,以后不能更改它。

  • 一个final类不能被子类化。这样做是出于安全和效率的考虑。因此,许多Java标准库类是final,例如java.lang.Systemjava.lang.Stringfinal类中的所有方法都是隐式的final

  • final方法不能由子类覆盖。这用于防止子类的意外行为更改可能对类的功能或一致性至关重要的方法。

  • 一个final变量只能要么通过初始化或赋值语句初始化一次。它不需要在声明时进行初始化:这称为blank final变量。必须在声明该类的每个构造函数的末尾明确分配该类的空白最终实例变量;类似地,必须在声明它的类的静态初始化器中明确分配一个空白的最终静态变量;否则,两种情况下都会发生编译时错误。

注意:如果变量是引用,则意味着不能将变量重新绑定为引用另一个对象。但是,如果它最初是可变的,它引用的对象仍然是可变的。

在方法的主体中定义匿名内部类final时,可以从内部类中访问在该方法范围内声明的所有变量。赋值后,最终变量的值将无法更改。



 类似资料:
  • 问题内容: 我找到了一个代码,它声明了如下代码 它们之间有什么区别或相同?还是与或不同? 问题答案: 完全没有区别。根据 Java语言规范的8.3.1-类-字段修饰符, 如果两个或多个(不同的)字段修饰符出现在字段声明中,则按惯例(尽管不是必需的),它们的出现顺序与上面FieldModifier生产中所示的顺序一致。 对于字段,所述生产按以下顺序列出修饰符: 对于方法:

  • 问题内容: 通常,最终静态成员,尤其是变量(或静态最终变量,当然可以以任何顺序使用,而不会重叠含义)已广泛用于Java接口中,以定义实现类的 协议行为 ,这意味着实现该类的类(继承)接口必须包含该接口的所有成员。 我无法区分 final 和 final静态 成员。final静态成员是一个声明为final或其他东西的静态成员?在哪些特定情况下应专门使用它们? 永远不能在方法内部,静态方法内部或实例方

  • 我发现了一个代码,其中声明了如下代码 它们之间有什么不同或相同?或者私人的和公共的有什么不同?

  • 本文向大家介绍静态和动态网页之间的区别,包括了静态和动态网页之间的区别的使用技巧和注意事项,需要的朋友参考一下 在互联网冲浪的背景下,网络浏览器(客户端)和网络服务器(服务器)之间存在两方通信。现在,为了规范这种通信,有一些协议(其中最常见的是HTTP协议)允许浏览器在其中进行通信向服务器发送HTTP请求,然后服务器将HTTP响应发送到浏览器。 现在,根据发送到浏览器的响应类型,我们可以将该响应分

  • 本文向大家介绍静态和动态测试之间的区别,包括了静态和动态测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此,在为应用程序编写的代码执行的基础上,存在测试的分类,即静态测试和动态

  • 本文向大家介绍静态SQL和动态SQL之间的区别,包括了静态SQL和动态SQL之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态SQL 静态SQL是指那些固定且可以硬编码到应用程序中的SQL语句。由于静态sql是固定查询,因此可以分析和优化这些语句,并且出于安全目的不需要任何特定处理。 动态SQL 动态SQL是指根据用户输入动态生成并在应用程序中运行的SQL语句。Dynamic Sqls帮助开