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

Posted 2sheep2simple

tags:

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

我的答案:

静态变量和实例变量的区别是静态变量的访问是不依赖对象的,因为在类加载的链接阶段(检验、准备、解析)的准备阶段时他们就被送入JVM方法区。被static修饰的代码在程序中之后被执行一次。

 

巨佬的答案:

在语法定义上的区别:

静态变量前要加static,而实例变量不需要。

在程序运行时的区别:实例变量属于某个对象的属性,只有在创建了对象后,实例变量才会被分配空间。静态变量不属于某个对象,而是属于类,因此也被称为类变量。在类的加载过程中,静态变量就被分配了空间,并可以通过类名的访问。而实例变量必须在通过创建好的对象来访问。

大佬的答案解除了我一个疑惑:既然静态变量在类加载时就被分配了空间, 那么非静态变量啥时候被分配空间?

思维拓展:每个对象都有属于自己的一套变量需要在对象实例化时被分配空间,类只是一个创建对象的模板。

以上是关于静态变量和实例变量的区别的主要内容,如果未能解决你的问题,请参考以下文章

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

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

静态变量与实例变量:区别?

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

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

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