Java中成员变量和局部变量的区别
Posted Ferron Zhu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中成员变量和局部变量的区别相关的知识,希望对你有一定的参考价值。
1、成员变量
1.1、定义
当JVM的类加载器加载类时,类定义的成员变量会被创建,成员变量包括实例变量(不以static
修饰),类变量(以static
修饰)以及常量。成员变量存在于JVM的堆内存中,其存在周期横跨类或实例的创建和销毁。
1.2、运行机制
类变量的初始化伴随着类的初始化一起进行,当一个类第一次被类加载器所加载之后,程序会在虚拟机堆内存中为该类分配一块内存空间,该类的类变量会存储在这块内存空间中,并被赋予默认值,使其在内存中存在。同样的,实例变量也同实例一起被创建,存储在堆内存空间,与实例共存亡。
2、局部变量
2.1、定义
局部变量根据定义的形式不同,分为形参、方法局部变量、代码块局部变量三种。形参是定义方法的签名时定义的局部变量,方法局部变量是方法内定义的变量,两者的作用域都是方法内,代码块局部变量则是在代码块结束的范围内生效,例如循环for语句。
2.2、运行机制
局部变量一般都在方法或代码块中被显示定义,局部变量必须被显示定义,系统并不会默认给局部变量进行初始化,而是当具体代码给局部变量显示赋值时,局部变量才在内存中存在。局部变量被存储在JVM栈内存中,当方法调用结束了,局部变量的内存存储就没了。
以上是关于Java中成员变量和局部变量的区别的主要内容,如果未能解决你的问题,请参考以下文章