成员变量和局部变量的区别成员变量和局部变量的区别和联系成员变量与局部变量的区别有哪些




成员变量和局部变量的区别成员变量和局部变量的区别和联系成员变量与局部变量的区别有哪些

2022-07-21 2:25:26 网络知识 官方管理员

局部变量成员变量的区别

1.声明的位置

1.1局部变量:方法体中、形参、代码块中

1.2成员变量:类中方法外

1.2.1类变量:有static修饰

1.2.2实例变量:没有static修饰

2.修饰符

2.1局部变量:final修饰

2.2成员变量:public、protected、private....

3.值存储的位置

3.1局部变量:栈

3.2实例变量:堆

3.3类变量:方法区

4.作用域

4.1局部变量:从声明处开始,到所属的}结束

4.2实例变量:在当前类中“this.”访问(有时可以省略),在其他类中“对象名.”访问

4.3类变量:在当前类中“类名.”访问(有时可以省略),在其他类中“类名.”访问

5.生命周期

5.1局部变量:每个线程,都次调用执行都是新的生命周期

5.2实例变量:随着对象的创建而初始化,随着对象被回收而消亡,每个对象的实例变量都是独有的

5.3类变量:随着类的初始化而初始化,随着类的卸载而消亡,该类的所有对象的类变量都是共享的

局部变量与XX变量重名时,如何区分?

1.局部变量与实例变量重名

1.1在实例变量前加this.

2.局部变量与类变量重名

2.1在类变量前加类名.

Java虚拟机内存图

成员变量和局部变量的区别(成员变量和局部变量的区别和联系)(1)

Java虚拟机各个数据区详细说明

1.堆:此内存区域唯一的目的是存放对象实例。

2.栈:也叫虚拟机栈,用于存储局部变量表等。局部变量表存放了可知长度的各种基本类型、引用类型,方法执行完,自动释放

3.方法区:用于存储被虚拟机加载的类信息、常量、静态变量,即被编译器编译过后的代码数据s

发表评论:

最近发表
网站分类
标签列表