黑马程序员技术交流社区
标题:
Java中变量的作用域与生命周期
[打印本页]
作者:
沉湎码海
时间:
2017-2-10 22:37
标题:
Java中变量的作用域与生命周期
Java中变量的作用域:
Java把变量的作用域分为两种一种是:
1.成员变量,另一种是
2.局部变量。
成员变量是在类的体内定义的变量,根据是否使用static修饰,有细分为:类属性的成员变量和实例属性的成员变量。
类属性的生存期和作用域是:随着这个类的初始化而存在,直到这个类被撤销而结束。
实例属性的生存期和作用域是:随着对象的创建而存在直到对象被撤销而消亡。
局部变量是:在方法体中或在代码块中定义的变量。
细分为: 方法局部变量 和 代码块局部变量
方法局部变量的作用域是:自定义之处起,直到该方法结束而终止。
代码块聚不聚变量的作用域是:自定义之处起,直到该代码块的结束而结束。
成员变量和局部变量的初始化的差异:
当系统加载类或创建该类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值。
1.局部变量定义后,必须经过用户显式初始化后才能使用,系统不会为局部变量执行初始化。
即:定义局部变量后,系统并未为这个变量分配内存空间,直到等到程序为这个变量赋初始值时,系统才会为局部变量
分配内存,并将初始值保存到这块内存中。
成员变量保存在堆内存中,局部变量保存在栈内存中。
2.与成员变量不同,局部变量不属于任何类或实例,因此它总是保存在其所在的方法的栈内存中。
栈内存中的变量无须系统垃圾回收,栈内存重的变量往往是随方法或代码块的运行结束而结束的。
因此,局部变量的作用域是从初始化该变量开始,直到该方法或该代码块运行完成而结束。
因为局部变量只保存基本数据类型的值或者是保存对象的引用,因此局部变量所占的内存区通常比较小。
作者:
xiaoyizi
时间:
2017-2-10 22:41
好,非常好我终于找到了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2