后端开发 \ Java \ Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化

Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化

总点击185
简介:根据定义变量位置的不同,可以将变量分为成员变量和局部变量。 成员变量是定义在一个类的变量:类中方法外

根据定义变量位置的不同,可以将变量分为成员变量和局部变量。


成员变量是 定义在一个类的变量:类中方法外


局部变量是定义在一个方法内的变量:方法中


成员变量分为:


静态属性:随类的存在而存在,是在类加载的初始化


非静态属性:随实例的属性存在而存在。

局部变量:


局部变量不能加static,包括protected, private, public这些也不能加。局部变量保存在栈中。


局部编程必须在声明时初始化。

成员变量和局部变量区别:


成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。


成员变量存在于堆内存,局部变量存在于栈内存。

静态变量:类中方法外,用static修饰


生命周期:JVM第一次读到这个类并加载类时开始,类销毁不存在。


类加载过程:

加载父类(如果父类已经加载过,则不在加载)。

初始化静态属性 。

按顺序的初始化静态代码块 初始化的前提就是分配空间 。

静态变量存在于方法区即静态区(方法区包含整个程序中唯一存在的元素)

全局变量(在java中可以理解为用static final修饰):在java中全局变量也称成员变量,是创建对象的时候分配内存的。全局常量存于全局数据区。


创建对象过程为:

分配空间。

创建父类对象。

初始化成员变量。

调用构造方法创建一个对象。

方法(包括静态方法)中不能有静态变量,方法中存在的是局部变量,而不是静态变量。静态变量是定义在类中,方法体外面的。

意见反馈 常见问题 官方微信 返回顶部