首页 > 编程语言 > 详细

JAVA-之成员变量、全局变量、局部变量的区别

时间:2020-03-18 00:10:27      阅读:55      评论:0      收藏:0      [点我收藏+]

区别:
全局变量(全局静态变量):作用整个类中,直接被类调用;放在方法区中;
当类加载的时候,就开始被创建,在类中只有一份; 会跟着类的消失而消失,生存时间较长。

成员变量:作用在整个类中(除静态方法不能使用,静态方法没有隐式的this),被对象调用。
如果没有实例化那么变量是放在栈中;实例化了对象放在堆中,栈中放的是指向堆中对象的引用地址。
在对象被创建时而存在,当对象被GC回收的同时,他也会消失,生存时间适中。

局部变量:作用在一个局部区域,比如说在一个方法中,方法调用。
放在栈中,new的对象放在堆中,8中基本数据类型变量放在栈中,变量所对应的值是放在栈帧中。
当方法被调用时而存在,当方法调用结束而消失,生存时间短。
举例:
public class Model {
/**
* 全局变量
*/
private static int a = 1;
/**
* 成员变量
*/
private int b;

public Model(int b) {
this.b = b;
}

public static void main(String[] args) {
// 局部变量
int c = 10;
Model modelA = new Model(2);
Model modelB = new Model(3);
}
}
对应对象模型图:

技术分享图片

 

 


--------------------- 
参考:

https://blog.csdn.net/demo_gsl/article/details/81123918 

http://www.hollischuang.com/archives/1910

https://blog.csdn.net/hxnlyw/article/details/94550158

JAVA-之成员变量、全局变量、局部变量的区别

原文:https://www.cnblogs.com/cocobear9/p/12514686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!