1.如果没有定义构造方法,系统会给出一个默认的无参构造。
- 内存区域划分:
栈内存:存放方法调用及局部变量。
堆内存:存放通过 new 创建的对象。
方法区:存放字节码(类信息),一般不会消失,除非关闭虚拟机。
- Java 中对象的内存分配流程:
(1)加载 class 文件到方法区
(2)申请局部变量
(3)在堆中开辟空间
(4)默认初始化(成员变量赋默认值)
(5)显式初始化(直接赋值)
(6)构造方法初始化
(7)将堆内存地址值赋给栈中的引用变量
-
this:表示所在方法的调用者对象的地址值,用于区分局部变量与成员变量等场景。
-
static:表示静态,是 Java 修饰符,用来修饰成员变量或成员方法。
(1)修饰成员变量时:称为静态变量,被该类的所有对象共享。
练习:

(2)static 修饰成员方法
作用:让方法属于类名,而不属于某个具体的对象(即无需创建对象,直接通过类名调用)。
注意:
静态方法中只能直接访问静态变量,不能直接访问非静态成员变量。
静态方法中没有 this 关键字。
6.final:表示最终、不可变。可以用来修饰变量、方法等。
7.枚举:是特殊的JAVAbean类,个数是有限的。
public enum 枚举类型名称 {
枚举值1, 枚举值2, ...;
属性;
方法;
}