一:三个级别:顶级、成员级别、方法级别
类可以出现在哪些级别:三个级别都可以
出现在成员级别和方法级别 —内部类
内部类:1.静态内部类(成员级别(static))作用:组织代码
2.内部类(Inner Class(不加static))成员级别、方法级别
匿名(匿名内部类)类的定义+对象一起
成员+方法
lambda表达式
类的限定符:访问限定(public.private...)符、static、final、abstract
成员内部类不能用限定符,static等(只能用defalut,其实就是不写)
final作用:1)被修饰的类不能被继承 2)被修饰的方法不能被覆写 3)被修饰的变量不能被修改
abstract作用:1)修饰类 2)修饰方法
static作用(成员级别):1)修饰类(静态内部类)2)修饰方法(与外部类对象解绑)(静态方法,方法在运行阶段有区别,表现在调用栈)
3)修饰变量(只加载一次,所有对象共享一个,存储在类上)4)修饰语句块 5)静态导入
静态方法的三个特点:1)无法使用关键字this 2)无法使用普通属性 3)无法使用普通方法
什么是类的加载:
将类文件(.class)从硬盘加载到内存中的方法区
抽象类和普通类的区别:
抽象类无法被实例化(无法定义抽象类对象)

二:对象的创建(对象的实例化)
1.new
2.反射
对象的实例化是做了什么事情:(实例化发生在运行期间)
1)从方法区中找该类的信息,如果没找到,将会触发类的加载(类的加载器ClassLoader)
2)对象最终放在堆上
3)计算对象的大小(属性放在对象上(包括父类))
4)开辟的空间初始化0x0(属性的默认值都是0)
5)属性初始化(1.定义时初始化(int a=0;) 2.构造代码块{a=10;} 3.构造方法A(){a=10;})
6)对象的生命周期:a:开辟空间 初始化为0x0 b:属性初始化阶段 c:真正生命 d:标记为死去(尸体还在,垃圾)
GC算法:怎么判断对象是否死去,怎么高效回收垃圾
分为三个区间:编写期间+编译期间+运行期间
IDEA javac java(JVM)
程序员 程序员 用户
.java .class 实际效果