在java语言中,静态变量和普通变量有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java语言中,静态变量和普通变量有啥区别?相关的知识,希望对你有一定的参考价值。

静态变量: 用关键字static修饰的成员变量称作静态变量或类变量;
实例变量:没有使用static修饰的成员变量称作实例变量
静态变量是与类相关联的数据变量,类变量不仅可以通过某个对象访问也可以直接通过类名访问。
实例变量仅仅是和相应的对象关联的变量,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量必须通过对象访问。
参考技术A 静态变量是从属于类的,在java虚拟机加载的时候就会在内存中加载这个变量,可以用类直接调用。
而普通的变量是从属于对象的,只有用对象来使用本回答被提问者和网友采纳
参考技术B 静态变量: 用关键字static修饰的成员变量称作静态变量或类变量;
实例变量:没有使用static修饰的成员变量称作实例变量
静态变量是与类相关联的数据变量,类变量不仅可以通过某个对象访问也可以直接通过类名访问。
实例变量仅仅是和相应的对象关联的变量,改变其中一个对象的实例变量不会影响其它对象的这个实例变量。实例变量必须通过对象访问。
参考技术C 面向对象中,状态是绑定到实例的,就好像没有一个人的话是没办法给它取名的。
而 static 在面向对象术语中就是“没有状态”的意思,所以 static 跟对象实例没有关联,只跟类有关联,因此从一个 static 方法中不能在没有对象实例的情况下访问它的非 static 方法或非 static 变量,因为 static 表示“还没有初始化状态”。

状态对应到编程实践中,就是类的实例成员变量。

c语言static在java语言区别

简略说下java的静态:

java语言是面向对象语言,存在类和对象。
全局变量如果变成静态的,那么作用域不再只是对象而是类。
java没有静态局部变量的说法!

C语言中的静态:

C语言是面向过程,没有类和对象概念。
变量分局部变量和全局变量。
1,加上static:
静态局部变量,即某个方法的内静态变量,该方法执行完该局部变量不被重置,该方法再执行,以静态局部变量上次结果继续参与运算。
静态全局变量,是的全局变量只能在当前文件中被访问,而全局变量,在别的文件中通过extern声明可以别的文件中访问。
static 修饰一个函数,则这个函数的只能在本文件中调用,和全局变量类似。

2,全局静态变量和局部静态变量,都在全局数据区分配内存,
并在声明的时候(如果没有赋值)自动初始化为 0

 

以上是关于在java语言中,静态变量和普通变量有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

java 类中静态变量 和 单例模式下对象中的成员变量 有啥区别?使用场景是啥?

在Java程序设计中实例变量和类变量有啥区别?

静态变量和实例变量的区别?

java中静态变量和静态方法分别有啥特点?

JAVA语言中,被static关键字修饰的成员变量和类变量有啥区别?

c语言static在java语言区别