全局变量、成员变量、类变量、静态变量、实例变量、局部变量的定义与区别

欢迎大家关注我的公众号【老周聊架构】,Java后端主流技术栈的原理、源码分析、架构以及各种互联网高并发、高性能、高可用的解决方案。

全局变量

全局变量又叫成员变量,它是声明在类里,函数,静态语句块外的变量,全局变量又分为类变量(静态变量)、实例变量两种.
通过代码来看一下:

private int i;//实例变量
private static int j;//类变量

实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。而由static修饰的类变量(静态变量)在类装载的时候就会被初始化,也就是说一处修改多处改变.

局部变量

方法内定义的变量叫局部变量,因为只能在方法内部使用,固不可以用private,public,protect来修饰。

{
	int k;//局部变量
}

类变量

类变量:又叫静态变量 用static修饰 它可以直接用类名调用 也可以用对象调用 而且所有对象的同一个类变量都是共享同一块内存空间的.

实例变量

实例变量:不用static修饰 它只能通过对象调用 而且所有对象的同一个实例变量是共享不同的内存空间的.


下面是它们之间的思维导图关系。
在这里插入图片描述

全局变量和局部变量的区别

全局变量:
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。(实例变量)
3、成员变量有默认初始化值。
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值

实例变量和类变量的区别

1、两个变量的生命周期不同
实例变量随着对象的创建而存在,随着对象的回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2、调用方式不同
实例变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
3、数据存储位置不同
实例变量存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。

全局变量局部变量、静态全局变量和静态局部变量是在编程中常见的变量型,它们有以下区别: 1. 全局变量: - 全局变量是在程序的任何地方都可以访问的变量,它的作用域是整个程序。 - 全局变量在声明时会被初始化,如果没有显式初始化,则会被默认初始化为0或者空值。 - 全局变量的生命周期从程序开始到程序结束。 2. 局部变量: - 局部变量是在特定代码块或函数内部声明的变量,它的作用域仅限于声明它的代码块或函数。 - 局部变量在声明时不会被自动初始化,需要手动赋初值。 - 局部变量的生命周期从其所在的代码块或函数执行开始到执行结束。 3. 静态全局变量: - 静态全局变量全局变量似,也是在整个程序中都可以访问的变量。 - 静态全局变量只能在声明它的文件内部访问,其他文件无法直接访问。 - 静态全局变量在声明时会被初始化,如果没有显式初始化,则会被默认初始化为0或者空值。 - 静态全局变量的生命周期从程序开始到程序结束。 4. 静态局部变量: - 静态局部变量是在函数内部声明的变量,但与普通局部变量不同,它的生命周期不随函数的调用而结束。 - 静态局部变量只会被初始化一次,在函数第一次被调用时初始化,之后保持其值不变。 - 静态局部变量的作用域仅限于声明它的函数内部。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老周聊架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值