A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 周朋飞 于 2012-6-22 15:15 编辑

  最近在看张老师的视频关于注解的那部分的时候,提到注解@Retetion 有三个取值,分别对应java源文件  class文件 内存当中的字节码文件,我原来一直以为编译之后就是字节码了  有比较清楚这块的吗

2 个回复

倒序浏览
首先我们编写的是Java的源文件,通过编译以后生成的是字节码文件也就是class文件,等到字节码文件被执行时才会被装入到内存中去,这时候就是内存中的字节码
Retention用来标记注解的生命周期,它有三种取值:
RetetionPolicy.SOURCE、RetetionPolicy.CLASS、RetetionPolicy.RUNTIME,分
别对应Java源文件-->class文件-->内存中的字节码,表示添加了该注解的注解保
留的阶段,比如某个注解加了@Retention(RetentionPolicy.CLASS)注解,则表示
此注解会被保留到class字节码阶段,当调用了添加了@Retention(RetentionPolicy.CLASS)
注解的注解的类的class文件被调入到内存后,添加了@Retention(RetentionPolicy.CLASS)
注解的注解就会被去掉。
注解的默认生命周期维持到class阶段

评分

参与人数 1黑马币 +2 收起 理由
周朋飞 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马