垃圾值的由来

1.我们声明1个局部变量,如果没有为这个局部变量初始化,那么这个局部变量中是有值的,这个值就是一个垃圾值,谁也不知道这个是个什么数值。

2.变量的回收

在大括弧执行完毕之后,定义在这个大括弧中的变量就会被系统回收。声明变量的时候,实际上就是找系统为你从高地址向低地址分配指定字节数的连续空间。比如声明一个int类型的变量(在内存中占4个字节,这个就不用再解释了吧,就是这么设计的),就会从高低地址向低地址分配4个字节的连续空间来存储声明的变量的值。

如何回收呢?

当变量回收的时候,其实就是告诉系统变量占用的字节不再使用了,可以分配给别的变量了。变量所占用的字节的数据是不会被清空的。

当再声明变量的时候,这个新变量有可能就是占用了刚刚被回收的那个变量的字节空间,那么这个时候,这个新变量中是有值的,值就是上次那个变量遗留下来的值,这就是垃圾值。

所以,当我们声明一个剧本变量的时候,最好是先为其初始化为0.

3.全局变量

全局变量声明出来以后,系统会自动将全局变量中的数据清零,所以全局变量的默认值为0,或初始化为0。

猜你喜欢

转载自qianjiangbing.iteye.com/blog/2287644