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

一世执手 提交于 2019-12-06 07:50:28

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

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

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

1、方法重载 在编译时执行;方法重写 在运行时执行。

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

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

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

5、继承是在编译时期运行的

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

7、

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!