本帖最后由 星海浮沉 于 2015-12-22 17:54 编辑
基础班的第七天了.
今天讲到static关键字,老师把静态变量和成员变量放一起比较了下,个人在把前几天的局部变量和成员变量的比较放到一起三个一起比较下.
.静态变量/成员变量/局部变量三者的比较
| 静态变量(静态修饰的内容是与类相关的) | 成员变量 | 局部变量 | 在程序中的位置 | static修饰的成员变量(在类中) | 在类中方法外(没有被static修饰)(在对象中) | 在方法申明上和方法中 | 在内存中的位置 | 在方法区中(随类的加载而诞生,先于对象存在) | 在堆中,属于对象 | 在栈中,属于方法 | 生命周期 | 随着类的创建而创建.随着类的消失而消失 | 随着对象的创建而产生,随着对象的消失而消失 | 随着方法的调用而创建,随著方法的调用完毕而消失 | 调用方式 | 可以用类名.变量名的方式调用,也能用对象名.变量名的方式调用 | 只能用对象名.变量名的方式调用.还可以用this.变量的方式调用(this就是用重名的区分成员变量和局部变量) | 不比较 | 初始化值 | 不比较 | 有系统的默认初始化值
(byte/short/int/long: 0
char: \u0000
float/double: 0.0
boolean false
) | 需要手动初始化,不初始化,不能调用 |
|
|