编译时期:检查是否有语法错误,若是没有就将其翻译为字节码文件,.classjava
运行时期:java虚拟机分配内存,解释执行字节码文件。框架
java编译时期会作一些优化操做。ide
一、方法重载 在编译时执行;方法重写 在运行时执行。优化
二、泛型(类型检测),在编译时。spa
三、注解,有的在编译时,有的在运行时。@Override注解就是典型的编译时注解,他会在编译时会检查一些简单的如拼写的错误(与父类方法不相同)等
一样的@Test注解是junit框架的注解,他是一个运行时注解,他能够在运行时动态的配置相关信息如timeout等。翻译
四、AOP 能够在编译时,预编译时以及运行时使用。编译时:当你有源码的时候,AOP编译器(AspectJ编译器)能够编译源码而且生成编译后的class;预编译时:织入过程有时候也叫做二进制织入,用来织入到 已经存在的class文件;运行时:当被织入的对象已经被加载到JVM中后,能够动态的织入到这些类中的一些信息。代理
五、继承是在编译时期运行的对象
六、代理,也成为动态代理,在运行时期执行。继承
七、内存