您可以在 Java 程序的不同部分(如变量、方法和静态块)中使用关键字。static
在 Java 中使用关键字的主要目的是节省内存。当我们在将由其他类访问的类中创建变量时,我们必须首先创建该类的实例,然后为每个变量实例分配一个新值 - 即使新变量的值在所有新类/对象中应该是相同的。static
但是,当我们创建静态变量时,它的值在所有其他类中保持不变,并且我们不必创建实例来使用该变量。这样,我们创建变量一次,因此内存只分配一次。
通过以下各节中的示例,您将更好地理解这一点。
为了理解关键字是什么以及它实际做了什么,我们将看到一些示例,这些示例显示了它在Java中声明静态变量,方法和块的用途。static
如何在 Java 中创建静态变量
为了理解关键字在创建变量中的用法,让我们看一下创建在类的每个实例之间共享的变量的常用方法。static
我将逐步解释上述代码中发生的事情。
我们创建了一个使用三个变量 – 、 和 调用的类。Student student Name course school
然后,我们创建了该类的两个实例:Student
Student Student1 = new Student();
Student Student2 = new Student();
第一个实例 – - 有权访问在其类中创建的变量具有以下值:Student1
Student1.studentName = "Ihechikara";
Student1.course = "Data Visualization";
Student1.school = "freeCodeCamp";
第二个实例具有以下值:
Student2.studentName = "John";
Student2.course = "Data Analysis with Python";
Student2.school = "freeCodeCamp";
如果你仔细观察,你会发现两个学生都有相同的学校名称 - “自由代码营地”。如果我们必须为同一所学校培养100名学生呢?这意味着我们将初始化具有相同值的变量 100 次 - 每次都分配新内存。
虽然这似乎不是问题,但在更大的代码库中,它可能会成为一个缺陷,并不必要地减慢程序的速度。
为了解决此问题,我们将使用关键字来创建变量。之后,该类的所有实例都可以使用该变量。staticschool
操作方法如下:
在上面的代码中,我们创建了一个名为 的静态变量。您会注意到,关键字位于数据类型和变量名称之前:。schoolstaticstatic String school = "freeCodeCamp";
现在,当我们创建类的新实例时,我们不必为每个实例初始化变量。在我们的代码中,我们只在第一个实例中为变量赋值,并且它也被第二个实例继承。school
请注意,更改代码中任何位置的静态变量的值都会覆盖代码中先前声明的值的其他部分中的值。
因此,您应该只对应该在程序中保持不变的变量使用关键字。static
您还可以在创建变量时为其赋值,以便在创建类实例时不必再次声明它:。static String school = "freeCodeCamp";
如果您使用上述方法,您将获得此内容:
在最后一节中,您将看到如何使用静态块初始化静态变量。
如何在 Java 中创建静态方法
在我们看一个例子之前,这里有一些关于Java中静态方法的知识:
静态方法只能访问和修改静态变量。
可以在不创建类实例的情况下调用/使用静态方法。
下面是一个示例,可帮助您了解:
在上面的代码中,我们在一个名为 的类中创建了一个整数 ()。evenNumberEvenNumber
我们的静态方法名为 。此方法增加整数的值并打印其值。incrementBy2() evenNumber
无需创建类实例,我们就能够在程序的方法中调用该方法。每次调用该方法时,的值都会递增 2 并打印出来。incrementBy2() main evenNumber
还可以在调用方法时使用点表示法将类的名称附加到方法:。每个静态方法都属于类,而不是类的实例。EvenNumber.incrementBy2();
如何在 Java 中创建静态块
Java 中的静态块类似于构造函数。我们可以使用它们来初始化静态变量,并且它们由编译器在方法之前执行。main
在上面的代码中,我们创建了一个静态整数变量 。然后,我们在一个静态块中初始化它:year
正如您在上面看到的那样,您可以使用关键字后跟大括号来创建一个静态块。在代码的静态块中,我们用值 2022 初始化了变量。我们还打印出了一些文本 - “这个代码块首先被执行”。static year
在该方法中,我们打印了“你好世界”和静态变量。main year
在控制台中,代码将按以下顺序执行:
这演示了如何在方法之前首先执行静态块中的代码。main
在本文中,我们讨论了Java中的关键字。它是一个主要帮助我们优化Java程序中内存的关键字。static
我们通过示例了解了如何创建静态变量和方法。最后,我们讨论了可用于初始化静态变量的静态块。静态块在主方法之前执行。