1.成员变量
- 成员变量是指在类中定义的变量
- 成员变量又分为实例变量和类变量。其中类变量是用static修饰,实例变量不由static修饰。
- 类变量与类共存亡,而实例变量与实例对象共存亡。当类加载时,类变量就被创建,类变量的作用域与类的生存范围相同;当实例对象被创建时,实例对象就被创建,直到实例对象被销毁。
- 一个类在使用之前要经过类加载,类验证,类准备,类解析,类初始化几个阶段。
2.局部变量
- 局部变量分为三种:
- 形参:在定义方法签名时定义的变量,形参的作用域在整个方法中有效。
- 方法局部变量:在方法体中定义的变量,作用域为整个方法。
- 代码块局部变量:在代码块中定义的变量,作用域为整个代码块。
3.变量的使用规则
- 当扩大了生存时间,这将增加更大的内存开销。
- 当扩大了变量作用域,不利于提高软件的内聚性。
- 当属性是描述对象的特征的时候时,如姓名,年龄,身高之类时,定义为对象变量。当属性是描述这一类特征时候,如眼睛个数(一般这类都一致的属性),定义为类变量。
- 创建一个对象的过程
Person person1 = new Person(); Person person2 = new Person();
- 当一行代码执行时:首先加载这个类进入内存,为这个类的类变量分配内存空间并指定默认初始值,当Person类完成初始化后,系统为这个Person类分配一块内存区(当Person类初始化完成后,系统会为Person类创建一个类对象,这个内存区含有这个类变量的),系统接着创建了一个Person对象,并将这个Person对象赋值给person变量,Person对象中含有对象成员变量。
- 当第二行代码执行时:此时因为Person类已经存在于堆内存中了,所以不用初始化Person类。剩下的与第一行执行时无异。
-