转自:http://blog.csdn.net/du_minchao/article/details/48881637
成员变量和局部变量的区别
成员变量:
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
3、成员变量有默认初始化值。
类变量也有默认初始值.
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
成员变量和类变量的区别
由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
不同的对象的实例变量将被分配不同的内存空间, 如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其他对象的这个类变量,也就是说对象共享类变量。
有关于数组的部分,不管该数组是属于成员变量还是类变量或者是局部变量,数组必须先初始化再使用,其中动态初始化(也就是只分配空间),会默认给空间赋初值,基本类型变量整数类型为0,浮点类型为0.0,字符类型为\u0000,布尔类型为false,引用类型则是null
数组存储过程如下:
首先数组声明,在栈中申请一个地址,再根据初始化在堆中申请一些连续的空间,并且此时栈中那个地址指向这个堆中开辟的地址空间。