(一)什么是类和对象
类
类是对事物、逻辑、算法或概念的抽象。描述一类对象的行为和状态,类就是一个共性的集合,所有根据此类产生出的对象都具备相同的行为.类实际上是对象操作的模版,但是类不能够直接使用,必须通过实例对象来使用.(先有类才能有对象),对象是通过类产生的.
对象
对象是类的一个实例(对象不是找个女朋友),有状态和行为,对象是某一个性的产物.
图纸和房子 图纸就是类,房子就是对象(房子是存在的)
(二)构造方法
新建对象时,执行的一个特殊方法
在创建一个对象的时候,至少要调用一个构造方法
构造方法的名称必须与类同名,一个类可以有多个构造方法
(三)类的加载顺序
(1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法)
(2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
(3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
(4) 父类构造函数
(5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
(6) 子类构造函数
(四)对象在内存中的存储结构
对象头
实例数据
填充数据
长度 | 内容 | 说明 |
---|---|---|
32/64bit | Mark Work | hashCode,GC分代年龄,锁信息 |
32/64bit | Class Metadata Address | 指向对象类型数据的指针 |
32/64bit | Array Length | 数组的长度(当对象为数组时) |