天使总在想象中,魔鬼总在细节处
一、变量分类
在java中,根据定义变量位置不同,将变量分为两大类:成员变量和局部变量。
变量 | 区别 |
---|---|
成员变量 | 定义在类中的变量都是成员变量 |
局部变量 | 定义在方法中或者{}语句里面的变量是局部变量 |
** 二者的运行机制存在较大差异**
二、两者的成员
三、成员变量和局部变量在实际使用中的区别
区别一:定义的位置
与定义相关,定义在类中的变量都是成员变量;定义在方法中或者{}中的是局部变量
区别二:在内存中的位置不同
变量 | 存储位置 |
---|---|
成员变量 | 存储在堆内存中 |
局部变量 | 存储在栈内存的方法中 |
区别三:声明周期不同
变量 | 周期 |
---|---|
成员变量 | 成员变量随着对象的出现而出现在堆内存中,随着对象的消失从而从堆内存中消失 |
局部变量 | 局部变量随着方法的运行从而出现在栈中,随着方法的弹栈从而消失 |
区别四:初始化不同
变量 | 区别 |
---|---|
成员变量 | 因为存放在堆内存中,会自动赋值对应属性的默认值 |
局部变量 | 没有默认的初始值,必须手动的给其赋值才能使用 |