成员变量(实例变量)&局部变量&静态变量(类变量)的区别
Posted 喝口水继续撸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成员变量(实例变量)&局部变量&静态变量(类变量)的区别相关的知识,希望对你有一定的参考价值。
成员变量(实例变量)&局部变量区别:
(1)作用域
成员变量:针对整个类有效。
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
(2)存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
当方法调用完,或者语句结束后,就自动释放。
(3)初始值
成员变量:有默认初始值。
局部变量:没有默认初始值,使用前必须赋值。
成员变量(实例变量)&静态变量(类变量)区别:
A:调用方式
静态变量也称为类变量,可以直接通过类名调用。也可以通过对象名调用。
这个变量属于类。
成员变量也称为实例变量,只能通过对象名调用。这个变量属于对象。
B:存储位置
静态变量存储在方法区长中的静态区。
成员变量存储在堆内存。
C:生命周期
静态变量随着类的加载而存在,随着类的消失而消失。生命周期长。
成员变量随着对象的创建而存在,随着对象的消失而消失。
D:与对象的相关性
静态变量是所有对象共享的数据。
成员变量是每个对象所特有的数据。
以上是关于成员变量(实例变量)&局部变量&静态变量(类变量)的区别的主要内容,如果未能解决你的问题,请参考以下文章
IOS总结 静变量static全局变量extern局部变量实例变量
JUC并发编程 -- 变量的线程安全问题(成员变量 & 静态变量 & 局部变量 & 开闭原则 & 理解JDK 中 String 类的实现)