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

手机站
千锋教育

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

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

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

当前位置:首页  >  技术干货  > java全局变量

java全局变量

来源:千锋教育
发布人:yyy
时间: 2023-06-29 14:27:00 1688020020

  1.java全局变量

  1.1 概述

  Java中的全局变量通常是指定义在类级别上的变量,也称为类变量或静态变量。它们与对象实例无关,而是与类相关联的变量。这意味着无论创建多少个对象,类变量的值都是相同的。类变量可以在整个类中使用,并且可以通过类名直接访问。

  要定义一个类变量,需要在变量声明之前添加关键字“static”。例如:

 public class MyClass {

  static int globalVariable = 10;

  }

   在上面的示例中,globalVariable是一个类变量,它被定义为一个整数,并初始化为10。该变量可以通过类名访问,如下所示:

 MyClass.globalVariable = 20;

   类变量可以在类中的任何地方使用,并且对于所有对象都是相同的。这使得它们成为在整个类中共享数据的有用工具。

  1.2 特点

  Java的全局变量,也称为成员变量或类变量,是在类中定义的变量,可以被类的所有方法和对象访问。以下是Java全局变量的特点:

  1.生命周期:全局变量在类定义的生命周期内存在,即在对象创建前就已经存在,直到程序结束或类被卸载时才被销毁。

  2.默认值:如果没有给全局变量赋初值,则它们将默认初始化为0或null,具体取决于变量的类型。

  3.可见性:全局变量可以在类的所有方法中访问,包括静态和非静态方法。

  4.作用域:全局变量的作用域是整个类,可以在类的任何方法中使用。

  5.静态性:可以使用static关键字将全局变量声明为静态变量,这样它们将成为类变量,而不是对象变量。静态变量只有一个副本,被类的所有对象所共享,因此它们可以在不创建对象的情况下访问。

  6.可变性:全局变量可以是可变的或不可变的,这取决于它们的数据类型。如果全局变量是一个对象,则可以更改该对象的状态,即使变量本身是final类型。

  总之,全局变量是Java中非常重要的一种数据类型,它们可以让变量在类的范围内存在,并且可以在整个类中使用。因此,它们可以被用来存储对整个类有意义的数据,或者作为类的状态的标志。

  1.3 案例

  以下是一个使用全局变量的Java示例:

public static void main(String[] args) {
// 在 main 方法中访问全局变量
System.out.println("全局变量的值为: " + globalVariable);

// 调用方法来修改全局变量的值
modifyGlobalVariable();

// 再次访问全局变量来查看其值是否被修改
System.out.println("修改后的全局变量的值为: " + globalVariable);
}

public static void modifyGlobalVariable() {
// 在方法中修改全局变量的值
globalVariable = 20;
}

   在这个例子中,我们声明了一个名为 globalVariable 的静态全局变量,它的值为 10。我们然后在 main 方法中访问这个全局变量,并将其值打印出来。

  接下来,我们调用 modifyGlobalVariable 方法来修改全局变量的值。在这个方法中,我们将 globalVariable 的值改为 20。

  最后,我们再次访问 globalVariable 来检查它的值是否已被修改,并将其值打印出来。

  注意,在 Java 中,静态全局变量必须使用 static 关键字进行声明,以便在其他静态方法中访问它。

  1.4 java全局变量的存储区域

  ●Java中的全局变量(即静态变量)存储在Java虚拟机(JVM)的方法区中。方法区是一种在JVM中用于存储类信息、常量、静态变量等数据的内存区域。在JVM启动时,方法区被分配,其大小可以根据需要进行调整。

  ●由于方法区是在JVM中共享的,因此所有实例都可以访问相同的全局变量。因此,全局变量也称为类变量,因为它们与整个类相关联,而不是与任何特定实例相关联。全局变量在类被加载时初始化,并且可以通过类名来访问,而不需要创建类的实例。

  2.局部变量

  2.1 概述

  局部变量是在定义形参、方法或代码块内部的变量,该变量只在当前方法、代码块中有效。

  2.2特点

  局部变量具有如下特点:

  ●局部变量声明在方法、构造方法或者代码块、形参中;

  ●局部变量在方法、构造方法、或者语句块被执行时创建,当它们执行完成后,局部变量就会被销毁;

  ●访问修饰符不能添加在局部变量上;

  ●局部变量只在声明它的方法、构造方法或者代码块、形参中可见;

  ●局部变量是在栈上分配的;

  ●局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

  2.3 案例

  在下面的案例中,给大家定义了几个局部变量供大家参考。

//args也是一种局部变量,在main(){}方法的{}范围内有效
public static void main(String[] args) {
int a = 10;//局部变量,在main(){}方法的{}范围内有效

System.out.println("a=" + a);
}

public void showAge() {
//i也是一种局部变量,只在for(){}这对{}范围内
for(int i=0;i<100;i++) {
System.out.println("age=" + age);
}
}

   2.4 java局部变量的存储区域

  ●Java 中的局部变量存储在栈(stack)内存中。栈是一种后进先出的数据结构,用于存储方法调用时的局部变量、方法参数和返回值等数据。当一个方法被调用时,会为该方法在栈上分配一块内存空间,用于存储该方法的局部变量和方法参数。当方法执行完毕后,该方法的栈帧就会被销毁,该方法的局部变量和方法参数也就随之被释放。因此,局部变量的生命周期与方法的生命周期相同,只在方法内部有效。

  3.总结

  至此,最后给大家总结下局部变量和成员变量的区别,大家一定多上手练一练哈,这样才能加深印象:

  相同点:

  1.定义变量的格式相同;

  2.先声明后使用;

  3.变量都有对应的作用域。

  不同点:

  两者声明的位置及作用范围不同,如下表所示:

  成员变量 直接定义在类中,根据修饰符的不同,可以在当前类或其他类中有效。

  局部变量 定义在方法的形参、方法内部、代码块内部的变量。只在当前方法及代码块内部有效。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
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