前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java全局变量(成员变量)和局部变量的区别

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

作者头像
全栈程序员站长
发布2022-09-24 14:11:11
1K0
发布2022-09-24 14:11:11
举报

大家好,又见面了,我是你们的朋友全栈君。

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

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

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

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

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

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

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

在方法体中声明的变量叫做:局部变量。 在方法体外声明的变量叫做:成员变量。 其中成员变量又可以分为:

实例变量 静态变量

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

2.2、静态变量:

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

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

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

2.3 实例变量

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

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

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

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

2.4局部变量

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

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

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

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

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

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

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

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

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

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档