Java中全局变量和局部变量详解(看这篇就够了)

 更新时间:2023年11月29日 11:27:11   作者:Rsun04551  
在Java中全局变量和局部变量是两种不同作用域的变量,这篇文章主要给大家介绍了关于Java中全局变量和局部变量的相关资料,文中通过代码介绍的非常详细,大家看这篇就够了,需要的朋友可以参考下

在Java中,全局变量和局部变量是两种不同作用域的变量。

全局变量(成员变量):

public class Example {
    int globalInt;  // 全局变量,默认为0
    String globalString;  // 全局变量,默认为null
    static int staticGlobalInt;  // 静态全局变量,默认为0

    public void method() {
        System.out.println(globalInt); // 可以在类中的任何地方使用
    }

    public static void main(String[] args) {
        System.out.println(staticGlobalInt); // 静态全局变量也可以在静态方法中使用
    }
}

在类中定义的变量称为成员变量,也叫全局变量。它们的作用域是整个类,在类的任何地方都可以被访问。

如果没有显式地初始化,它们会有默认值。

全局变量可以是基本数据类型(如int、double等)或引用类型(如对象、数组等)。

全局变量存在于堆内存中

局部变量:

public class Example {
    public void method() {
        int localVar = 10; // 局部变量,必须显式初始化
        System.out.println(localVar); // 可以在方法内部使用
    }
}

在方法、代码块或构造方法内部定义的变量称为局部变量。

它们的作用域仅限于所在的方法、代码块或构造方法内部。

局部变量必须显式初始化才能使用。

局部变量是创建在栈内存中的

附:JAVA中全局变量和局部变量的区别

JAVA中全局变量和局部变量的区别如下:

1.作用域不同:

全局变量在整个类中都可以被访问,而局部变量只在它们被声明的方法或代码块中有效。

2.生命周期不同:

全局变量在类被加载时创建,一直存在于内存中,直到程序退出或对象被销毁。而局部变量在方法或代码块被执行时创建,当方法或代码块执行完毕后会被自动销毁。

3.初始值不同:

全局变量在声明时可以赋初值,否则会被默认初始化。而局部变量没有默认值,必须在使用前进行赋值。

4.访问权限不同:

全局变量可以被类中的所有方法访问,而局部变量只能在其所在的方法或代码块中被访问。

因此,全局变量和局部变量的主要区别在于它们的作用域、生命周期、初始值和访问权限。

总结:

  • 全局变量作用域是整个类,可以在类的任何地方使用。
  • 局部变量作用域限定在方法、代码块或构造方法内部,必须显式初始化后才能使用。

相关文章

  • Spring Date jpa 获取最新一条数据的实例代码

    Spring Date jpa 获取最新一条数据的实例代码

    这篇文章主要介绍了Spring Date jpa 获取最新一条数据的实例代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 6种Java创建对象的方式总结

    6种Java创建对象的方式总结

    在Java中,创建对象可以使用多种方式,本文将详细介绍以下六种创建对象的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-04-04
  • SpringBoot拦截器原理解析及使用方法

    SpringBoot拦截器原理解析及使用方法

    这篇文章主要介绍了SpringBoot拦截器原理解析及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Spring Boot 2.4 对多环境配置的支持更改示例代码

    Spring Boot 2.4 对多环境配置的支持更改示例代码

    这篇文章主要介绍了Spring Boot 2.4 对多环境配置的支持更改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java Redisson多策略注解限流

    Java Redisson多策略注解限流

    这篇文章主要介绍了Java Redisson多策略注解限流,文章使用Redisson的RRateLimiter进行限流,详细介绍,感兴趣的小伙伴可以参考下面文章内容
    2022-09-09
  • 详解spring cloud hystrix缓存功能的使用

    详解spring cloud hystrix缓存功能的使用

    这篇文章主要介绍了详解spring cloudhystrix缓存功能的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 详解大数据处理引擎Flink内存管理

    详解大数据处理引擎Flink内存管理

    Flink是jvm之上的大数据处理引擎,jvm存在java对象存储密度低、full gc时消耗性能,gc存在stw的问题,同时omm时会影响稳定性。针对频繁序列化和反序列化问题flink使用堆内堆外内存可以直接在一些场景下操作二进制数据,减少序列化反序列化消耗。本文带你详细理解其原理。
    2021-05-05
  • Java微信小程序医院挂号系统

    Java微信小程序医院挂号系统

    这篇文章主要介绍了基于Java微信小程序医院挂号系统,可以实现远程处理事务,远程提交工作和随时追踪工作的状态,文中提供了解决思路和部分实现代码,需要的朋友可以参考下
    2023-03-03
  • 分析JVM源码之Thread.interrupt系统级别线程打断

    分析JVM源码之Thread.interrupt系统级别线程打断

    在java编程中,我们经常会调用Thread.sleep()方法使得线程停止运行一段时间,而Thread类中也提供了interrupt方法供我们去主动打断一个线程。那么线程挂起和打断的本质究竟是什么,本文就此问题作一个探究
    2021-06-06
  • Java模拟QQ桌面截图功能实现方法

    Java模拟QQ桌面截图功能实现方法

    这篇文章主要介绍了Java模拟QQ桌面截图功能实现方法,涉及java针对鼠标事件及图片操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论