Java全局变量(成员变量)和局部变量的区别

Java全局变量(成员变量)和局部变量的区别前言:学习变量之前若对static修饰符不理解,理解可能比较吃力。一、下面先大致介绍java中static关键字的作用1:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。2:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。3:简单来说就是被static修饰后的值可以直接类名.值进行引用,而无需new一个对象进行调用4.static特点static翻译为“静态”所有static关键字修饰的都是类相关的,类级别的。所有static修饰的,都是采用“

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言:学习变量之前若对static修饰符不理解,理解可能比较吃力。

一、下面先大致介绍java中static关键字的作用

1:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。

2:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。 

3:简单来说就是被static修饰后的值可以直接类名.值进行引用,而无需new一个对象进行调用

4.static特点
static翻译为“静态”
所有static关键字修饰的都是类相关的,类级别的。
所有static修饰的,都是采用“类名.”的方式访问。
static修饰的变量:静态变量
static修饰的方法:静态方法

二.变量的分类:
2.1变量根据声明的位置进行划分:

在方法体中声明的变量叫做:局部变量。
在方法体外声明的变量叫做:成员变量

其中成员变量又可以分为:

实例变量
静态变量
Java全局变量(成员变量)和局部变量的区别

 2.2、静态变量:

1:静态变量(又称类变量):由static修饰,在JVM中,静态变量的加载顺序在对象之前,因此静态变量不依附于对象存在,可以在不实例化类的情况下直接使用静态变量

2:静态变量属于类,不属于类中任何一个对象,因此静态变量又叫做类变量,一个类不管创建多少个对象(对象是类的一个实例),静态变量在内存中有且仅有一个。

简而言之若需要引用静态变量,直接类名.静态变量即可
如:System.out.println(“类变量(又称静态变量) A=” + Demo.A);

2.3 实例变量

实例变量(又称成员变量):必须依附于对象存在,

只有实例化类后才可以使用此类中的实例变量

 (即new 对象后才能调用)如代码中的

Java全局变量(成员变量)和局部变量的区别

2.4局部变量

这里仅讲解 方法体内定义的局部变量

方法体内定义的局部变量仅能在该方法中使用,若外部直接使用,则会报错

 Java全局变量(成员变量)和局部变量的区别

 

 

三、全局变量和局部变量的区别如下:

1,作用域不同:全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等

2,内存存储方式不同:全局变量存储在全局数据区中,局部变量存储在栈区

3,生命期不同:全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了

4,使用方式不同:全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量。

5,工具类里的方法都使用静态的。(静态方法有一个优点,是不需要new对象,直接采用类名
调用,极其方便。工具类就是为了方便,所以工具类中的方法一般都是static的。)

6,什么时候变量声明为实例的,什么时候声明为静态的?

如果这个类型的所有对象的某个属性值都是一样的,不建议定义为实例变量,浪费内存空间。
建议定义为类级别特征,定义为静态变量,在方法区中只保留一份,节省内存开销。

  • 一个对象一份的是实例变量。
  • 所有对象一份的是静态变量。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171754.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月21日 下午12:00
下一篇 2022年8月21日 下午12:00


相关推荐

  • 二分法排序C++

    二分法排序C++include includevoidT intarray intn nbsp nbsp nbsp nbsp nbsp nbsp intleft right num nbsp nbsp nbsp nbsp nbsp nbsp intmiddle j i nbsp nbsp nbsp nbsp nbsp nbsp for i 1 i nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp left 0 准备 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp right i 1

    2026年3月18日
    2
  • LibROSA库提取MFCC特征的过程解析

    LibROSA库提取MFCC特征的过程解析目录源码解析获取梅尔频谱分帧加窗快速傅里叶变换梅尔滤波器取对数离散余弦变换总结 LibROSA 本文使用的版本是 0 6 3 中的 mfcc 函数可以用来提取音频的梅尔频率倒谱系数 Mel FrequencyCep MFCCs 特征 MFCC 被广泛应用于语音识别 LibROSA 的 mfcc 函数源码如下 Melsp

    2026年3月19日
    1
  • mysql数据库备份和还原的命令_Mysql数据库备份和还原常用的命令

    mysql数据库备份和还原的命令_Mysql数据库备份和还原常用的命令Mysql数据库备份和还原常用的命令是进行Mysql数据库备份和还原的关键,没有命令,什么都无从做起,更谈不上什么备份还原,只有给系统这个命令,让它去执行,才能完成Mysql数据库备份和还原的操作,下面就是操作的常用命令。一、备份命令1、备份MySQL数据库的命令mysqldump-hhostname-uusername-ppassworddatabasename>backupf…

    2022年5月4日
    58
  • Cygwin安装教程【超详细】

    Cygwin安装教程【超详细】本文转载自 https a9school com makefile cygwin install 古人云 纸上得来终觉浅绝知此事要躬行 学习 Makefile 最好的方法不是去记忆它的语法和规则 而是实际 因此 本门课程通过 Cygwin 来实操 Makefile 的所有例程 什么是 CygwinCygwin 是一个在 windows 平台上运行的类 UNIX 模拟环境 是 cygnussoluti 公司开发的自由软件 该公司开发的著名工具还有 eCos 不过现已被 Redhat 收购 它对于学习 UNIX Linux

    2026年3月19日
    3
  • django安装mysqlclient (Windows下正确安装mysqlclient)

    django安装mysqlclient (Windows下正确安装mysqlclient)由于本人也是初学 Python 和 django 本人使用的 Python 版本是 3 7 所以连接 MySQL 数据库需要安装数据驱动 对应 Python3 的数据驱动是 mysqlclient 因此本人习惯性的使用命令 pipinstallmy 结果安装失败 venv C Users songlihui PycharmProje autotest gt pipinstallmy

    2025年7月26日
    4
  • 大圣有几个阶段

    大圣有几个阶段

    2026年3月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号