千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 为什么在Java中是静态的?这个关键字是什么意思

为什么在Java中是静态的?这个关键字是什么意思

来源:千锋教育
发布人:syq
时间: 2022-09-15 15:51:10 1663228270

  您可以在 Java 程序的不同部分(如变量、方法和静态块)中使用关键字。static

  在 Java 中使用关键字的主要目的是节省内存。当我们在将由其他类访问的类中创建变量时,我们必须首先创建该类的实例,然后为每个变量实例分配一个新值 - 即使新变量的值在所有新类/对象中应该是相同的。static

6

  但是,当我们创建静态变量时,它的值在所有其他类中保持不变,并且我们不必创建实例来使用该变量。这样,我们创建变量一次,因此内存只分配一次。

  通过以下各节中的示例,您将更好地理解这一点。

  为了理解关键字是什么以及它实际做了什么,我们将看到一些示例,这些示例显示了它在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中静态方法的知识:

  静态方法只能访问和修改静态变量。

  可以在不创建类实例的情况下调用/使用静态方法。

  下面是一个示例,可帮助您了解:

7

  在上面的代码中,我们在一个名为 的类中创建了一个整数 ()。evenNumberEvenNumber

  我们的静态方法名为 。此方法增加整数的值并打印其值。incrementBy2() evenNumber

  无需创建类实例,我们就能够在程序的方法中调用该方法。每次调用该方法时,的值都会递增 2 并打印出来。incrementBy2() main evenNumber

  还可以在调用方法时使用点表示法将类的名称附加到方法:。每个静态方法都属于类,而不是类的实例。EvenNumber.incrementBy2();

  如何在 Java 中创建静态块

  Java 中的静态块类似于构造函数。我们可以使用它们来初始化静态变量,并且它们由编译器在方法之前执行。main

8

  在上面的代码中,我们创建了一个静态整数变量 。然后,我们在一个静态块中初始化它:year

9

  正如您在上面看到的那样,您可以使用关键字后跟大括号来创建一个静态块。在代码的静态块中,我们用值 2022 初始化了变量。我们还打印出了一些文本 - “这个代码块首先被执行”。static year

  在该方法中,我们打印了“你好世界”和静态变量。main year

  在控制台中,代码将按以下顺序执行:

10

  这演示了如何在方法之前首先执行静态块中的代码。main

  在本文中,我们讨论了Java中的关键字。它是一个主要帮助我们优化Java程序中内存的关键字。static

  我们通过示例了解了如何创建静态变量和方法。最后,我们讨论了可用于初始化静态变量的静态块。静态块在主方法之前执行。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT
开班信息
北京校区
  • 北京校区
  • 大连校区
  • 广州校区
  • 成都校区
  • 杭州校区
  • 长沙校区
  • 合肥校区
  • 南京校区
  • 上海校区
  • 深圳校区
  • 武汉校区
  • 郑州校区
  • 西安校区
  • 青岛校区
  • 重庆校区
  • 太原校区
  • 沈阳校区
  • 南昌校区
  • 哈尔滨校区