当前位置: 首页 > 知识库问答 >
问题:

何时选择要声明为final static的变量

姜胤
2023-03-14

我也使用了最终变量和静态变量。我对这些变量的发现是,

>

  • 最终变量只能通过初始化程序或赋值语句初始化一次。

    与常数的值不同,最终变量的值在编译时不一定已知。

    我应该声明哪些变量为最终变量-

    大多数情况下,我使用的变量的值是恒定的,永远不会改变,例如PI的值。

    public static final double PI = 3.141592653589793;
    

    >

  • 这些是属于类而不是对象(实例)的变量。

    静态变量仅在执行开始时初始化一次。

    由类的所有实例共享的单个副本

    静态变量可以通过类名直接访问,不需要任何对象。

    我应该声明哪些变量为最终变量-

    大多数时候,我使用那些我只想初始化一次并在enitre类中使用它们的变量。

    现在,我在我的一个数据库项目中遇到了一个术语“final static”。我发现一些数据库对象甚至数据库版本被声明为statci final。

     static final String DATA_BASE = "BackUpDatabase.db";
        static final int DATA_BASE_VERSION = 1;
    

    现在,我的问题是,我们应该声明哪些变量为最终变量、静态变量或静态变量,因为使用它们中的任何一个都可以解决问题,然后将两者结合使用。

  • 共有3个答案

    西门良才
    2023-03-14

    final只表示初始化后的值不能更改;静态表示属性属于类而不是对象。

    所以当你说final static;这意味着变量只有一个副本,不能更改。

    尉迟宪
    2023-03-14

    声明为静态最终(反之亦然)的变量被理解为有意义的常量,并且在所有大写中以空格下划线命名。

    经常遇到的常量的一个例子是intger.MAX_VALUE,或Math. PI

    景阳平
    2023-03-14
    static -  Only use when a variable which is used globally 
    final -  Only use when you need to declare a value as constant 
    
    static final - Only use when a value is globally used and it is a constant.
    
    : - Here global means across all the instances of a java class
    
     类似资料:
    • 本文向大家介绍JavaScript声明变量时为什么要加var关键字,包括了JavaScript声明变量时为什么要加var关键字的使用技巧和注意事项,需要的朋友参考一下 在JavaScript中,var用来声明变量,但是这个语法并不严格要求,很多时修改,我们可以直接使用一个变量而不用var声明它。 诸如此类。这有一个问题,比如说在代码中的某一行,我想使用的一个已声明的变量x,结果由于打字或者拼写错误

    • let和const是JavaScript里相对较新的变量声明方式。 像我们之前提到过的,let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。 const是对let的一个增强,它能阻止对一个变量再次赋值。 因为TypeScript是JavaScript的超集,所以它本身就支持let和const。 下面我们会详细说明这些新的声明方式以及为什么推荐使用它们来代替v

    • 我有重复的变量声明,我认为它们可以通过for循环来改进,但是我的尝试失败了。 我尝试了数组的for-loop声明器,但我的语法不起作用。 我有一个“工作代码”: 我试图减少它是这样的: 预期结果: 与“工作代码”相同的结果: 当我单击“menu1”div时: 实际错误消息:“意外标记=”“未捕获的TypeError:菜单[0][i].AddEventListener不是函数” 编辑:我发现了一个巨

    • 问题内容: 在Java中,当声明一个字符串变量时,单词“ String”被大写,但是我遇到的其他任何类型都不是(例如,“ int”或“ double”)。为什么是这样?设计师是否只是一些奇怪的任意决定? 问题答案: 为什么在Java中将字符串变量的声明大写? 该类型的资本,因为它是一个 类 ,象,而不是一个原始类型像或(其他类型,你可能跑过)。 作为一个类,遵循Sun提出的Java命名约定。简而言

    • 问题内容: 我读到要使一个类在Java中不可变,我们应该执行以下操作: Do not provide any setters Mark all fields as private Make the class final标记为私有 为什么需要步骤3?我为什么要上课呢? 问题答案: 如果你不标记该类,那么我可能会突然使你看似不变的类真正变得可变。例如,考虑以下代码: 现在,假设我执行以下操作: 注意

    • 问题内容: 我不明白这个脚本有什么问题 我希望它在表中插入10个值,但是第二行有错误。 问题答案: MySQL不支持执行存储过程代码的匿名块。 您需要创建一个包含该代码的存储过程,然后调用它。 另外,您在插入语句的末尾缺少分号。我修好了 您可能还想使用concat()而不是+来生成名称,但是我将把更改留给您。 创建过程: 调用过程: