局部和全局变量浅析

变量有分全局变量和局部变量 也分静态变量和普通变量

先说全局变量和局部变量的区别:

1.存储位置不同:全局变量存储在方法区,局部变量存储在栈区

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

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

注意:局部变量不能赋值为同名全局的值

int value =1

int main(){

   int value = value;

   syste.out.printf(value+"");


}


程序输出-34323322 因为局部变量会覆盖全局变量,局部变量没有赋值 因此输出随便值


java中成员变量(全局变量) 成员变量好比试正式员工,而局部变量就是临时工,随时销毁,成员变量伴随着对象。


静态变量和普通变量的区别

最明显的特性:全局静态变量属于类,成员变量属于对象

类的静态变量在内存只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享,静态变量通过类名.xxx进行访问,生命周期取决于类的生命周期。

成员变量取决于类的实例,每创建一个实例,java虚拟机就会为实例变量分配一次内存,实例变量位于堆。

java中初始化顺序:加载类,静态变量初始化,静态快,成员变量 构造方法

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝


成员变量存储在堆内存的对象中,所以也叫对象的特有数据。            

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值