JAVA编译时期和运行时期的区别

编译时期:检查是否有语法错误,若是没有就将其翻译为字节码文件,.classjava

运行时期:java虚拟机分配内存,解释执行字节码文件。框架

java编译时期会作一些优化操做。ide

一、方法重载 在编译时执行;方法重写 在运行时执行。优化

二、泛型(类型检测),在编译时。spa

三、注解,有的在编译时,有的在运行时。@Override注解就是典型的编译时注解,他会在编译时会检查一些简单的如拼写的错误(与父类方法不相同)等
一样的@Test注解是junit框架的注解,他是一个运行时注解,他能够在运行时动态的配置相关信息如timeout等。翻译

四、AOP 能够在编译时,预编译时以及运行时使用。编译时:当你有源码的时候,AOP编译器(AspectJ编译器)能够编译源码而且生成编译后的class;预编译时:织入过程有时候也叫做二进制织入,用来织入到 已经存在的class文件;运行时:当被织入的对象已经被加载到JVM中后,能够动态的织入到这些类中的一些信息。代理

五、继承是在编译时期运行的对象

六、代理,也成为动态代理,在运行时期执行。继承

七、内存

相关文章
相关标签/搜索