黑马程序员技术交流社区

标题: javac编译之后的class文件和字节码文件的区别 [打印本页]

作者: 周朋飞    时间: 2012-6-20 19:48
标题: javac编译之后的class文件和字节码文件的区别
本帖最后由 周朋飞 于 2012-6-22 15:15 编辑

  最近在看张老师的视频关于注解的那部分的时候,提到注解@Retetion 有三个取值,分别对应java源文件  class文件 内存当中的字节码文件,我原来一直以为编译之后就是字节码了  有比较清楚这块的吗
作者: 崔云飞    时间: 2012-6-20 20:02
首先我们编写的是Java的源文件,通过编译以后生成的是字节码文件也就是class文件,等到字节码文件被执行时才会被装入到内存中去,这时候就是内存中的字节码
Retention用来标记注解的生命周期,它有三种取值:
RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME,分
别对应Java源文件-->class文件-->内存中的字节码,表示添加了该注解的注解保
留的阶段,比如某个注解加了@Retention(RetentionPolicy.CLASS)注解,则表示
此注解会被保留到class字节码阶段,当调用了添加了@Retention(RetentionPolicy.CLASS)
注解的注解的类的class文件被调入到内存后,添加了@Retention(RetentionPolicy.CLASS)
注解的注解就会被去掉。
注解的默认生命周期维持到class阶段





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2