全局变量和局部变量

来源:互联网 发布:unity3d 2d游戏源码 编辑:程序博客网 时间:2024/05/19 21:43

局部变量:

在方法中开辟的变量,只在方法中有效

局部变量在定义时不会初始化,要显式的给它一个值(如未给它一个初始值,虽然编译的时候会通过,但是运行的时候会产生为初始化错误!)。

方法调用代码执行完,局部变量便会自动释放。

在方法内的语句块中建立的变量在编译时假如未初始,如若使用,也会报未初始化错误!(调用的时候不会为其开辟空间)

 

全局变量

在类中定义的,对该类的所有方法所共有

全局变量不用进行显式初始化,但如果全局变量的修饰符为final,要进行显式的初始化,否则编译不通过。

会调用构造方法为其初始化实例全局变量

如果是静态全局变量,可以通过静态初始化块为其初始化。

生命周期是随着对象的销毁而销毁。

 

静态全局变量

归该类的所有对象所公有

特点

1.虚拟机一加载该类的字节码,便会为其的静态全局变量在方法区的静态数据区开辟空间,空间的大小由变量的类型所决定,并初始化,就和相应的类相关联。

2.虚拟机在创建一个对象时,如若有静态全局变量,则会为该静态全局变量在堆中创建一个引用。这个引用指向了方法区的静态数据区中的该变量的空间。所以在方法中使用静态全局变量时,会先找到该引用,再通过该引用找到在静态数据区的该变量。

3.在主方法中调用为在主方法中定义的变量,会默认为是静态全局变量。

4.在代码执行过程中不会被销毁.

 

 

 

 

 

 

0 0