java全局变量和类变量有何区别

如题所述

java没有全局变量的概念。
类变量是声明在class内,method之外,且使用static修饰的变量。
实例变量是声明在class内,method之外,且未使用static修饰的变量。
类变量与实例变量的区别是:
1)存储位置不同。静态变量存储于方法区,而实例变量存储于堆区。
2)生命周期不同。静态变量在加载类过程中优先加载,其生命周期取决于类的生命周期;实例变量在创建实例时才创建,它的生命周期取决于实例的生命周期。
3)引用对象不同。静态变量属于类,被类的所有实例共享,可以直接使用类名来引用也可以通过类的实例引用;而实例变量则属于某个对象,它必须在创建对象后才可以通过这个对象来使用。
4)使用方法不同。一个类只能有一个同名静态变量,无论是通过类或者任何一个实例对静态变量重新赋值,结果都是一样;而一个类创建多少个实例就会有多少个同名实例变量,各实例变量存储空间不同,对其中一个实例变量重新赋值不影响其它实例的同名变量。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-29
全局变量顾名思义,就是在任何位置都能访问,类变量则只能在其对应的类中能访问,作用域不同
第2个回答  推荐于2017-09-14
全局变量和局部变量:一个很简单的理解就是你想在括号外面用括号里面定义的变量怎么办?
那就需要放大括号里面变量的范围就出现了全局变量本回答被提问者采纳
第3个回答  2012-03-29
a static variable is visible to all instances of the class.
a class variable is visible to the class instance only, ie, every class instance gets its own variable to work with and it's not visible to other class instances.
第4个回答  2012-03-29
作用的范围不同
相似回答