注解底层源码解析

注解

元注解

  • @Target:注解的作用目标
  • @Retention:注解的生命周期
    • RetentionPolicy.SOURCE:当前注解编译期可见,不会写入 class 文件
    • RetentionPolicy.CLASS:类加载阶段丢弃,会写入 class 文件
    • RetentionPolicy.RUNTIME:永久保存,可以反射获取
  • @Documented:注解是否应当被包含在 JavaDoc 文档中
  • @Inherited:是否允许子类继承该注解

内置三大注解

  • @Override(RetentionPolicy.SOURCE)
  • @Deprecated(RetentionPolicy.SOURCE)
  • @SuppressWarnings(RetentionPolicy.SOURCE)

原理

注解编译时会变成一个接口,并继承Annotation

在这里插入图片描述

class.getAnnotation() 时序图:

在这里插入图片描述

Class种注解存储元数据AnnotatinoData:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-761fuKkS-1599974646004)(开发.assets/1599394190983.png)]

getAnnotation()时序图对应代码:

在这里插入图片描述


- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-c1FZnXdS-1599974646010)(开发.assets/1599403853928.png)]


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a4UkqQjG-1599974646017)(开发.assets/1599393729294.png)]

Annotation用JDK动态代理生成对象时的InvacationHandler:

在这里插入图片描述


在这里插入图片描述

已标记关键词 清除标记
相关推荐
<p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;"> Linux创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap, Show me the code.</span>(冗谈不够,放码过来!)。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;"> 代码阅读是从入门到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。 </p> <p align="left" class="MsoNormal" style="background:white;"> YOLOv3的实现<span>Darknet</span>是使用<span>C</span>语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 本课程将解析<span>YOLOv3</span>的实现原理和源码,具体内容包括:<span></span> </p> <p align="left" class="MsoNormal" style="text-indent:-18pt;background:white;"> <br /> </p> <ul> <li>      <span>YOLO目标检测原理 </span> </li> <li>      神经网络及Darknet的C语言实现,尤其是反向传播的梯度求解和误差计算  </li> <li>      代码阅读工具及方法  </li> <li>      深度学习计算的利器:BLAS和GEMM  </li> <li>      GPU的CUDA编程方法及在Darknet的应用  </li> <li>      YOLOv3的程序流程及各层的源码解析 </li> </ul> <!--[if !supportLists]--> <p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 本课程将提供注释后的<span>Darknet</span>的源码程序文件。<span></span> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 除本课程《<span>YOLOv3</span>目标检测:原理与源码解析》外,本人推出了有关<span>YOLOv3</span>目标检测的系列课程,包括:<span></span> </p> <p align="left" class="MsoNormal" style="background:white;"> <br /> </p> <ul> <li>   《YOLOv3目标检测实战:训练自己的数据集》 </li> <li>   《YOLOv3目标检测实战:交通标志识别》 </li> <li>   《YOLOv3目标检测:原理与源码解析》 </li> <li>   《YOLOv3目标检测:网络模型改进方法》 </li> </ul> <p> <br /> </p> <p align="left" class="MsoNormal" style="background:white;">   </p> <p align="left" class="MsoNormal" style="background:white;"> 建议先学习课程《<span>YOLOv3</span>目标检测实战:训练自己的数据集》或课程《<span>YOLOv3</span>目标检测实战:交通标志识别》,对<span>YOLOv3</span>的使用方法了解以后再学习本课程。<span></span> </p> <p> <br /> </p> <p> <span></span><span></span><span></span><span></span> </p>
<p> <span style="color:#0000ff;">需要学习ubuntu系统上YOLOv4的同学请前往:《YOLOv4目标检测实战:原理与源码解析》</span> </p> <h3> <span style="color:#3598db;">【为什么要学习这门课】</span> </h3> <p> Linux创始人Linus Torvalds有一句名言:Talk is cheap. Show me the code. <strong><span style="color:#ba372a;">冗谈不够,放码过来!</span></strong> </p> <p> 代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。 </p> <p> YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。 </p> <p> YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。 </p> <h3> <span style="color:#3598db;">【课程内容与收获】</span> </h3> <p> 本课程将解析YOLOv4的实现原理和源码,具体内容包括: </p> <p> - YOLOv4目标检测原理 </p> <p> - 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算 </p> <p> - 代码阅读工具及方法 </p> <p> - 深度学习计算的利器:BLAS和GEMM </p> <p> - GPU的CUDA编程方法及在darknet的应用 </p> <p> - YOLOv4的程序流程 </p> <p> - YOLOv4各层及关键技术的源码解析 </p> <p> 本课程将提供注释后的darknet的源码程序文件。 </p> <h3> <span style="color:#3598db;">【相关课程】</span> </h3> <p> 除本课程《Windows版YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括: </p> <p> 《Windows版YOLOv4目标检测实战:训练自己的数据集》 </p> <p> 《Windows版YOLOv4-Tiny目标检测实战:训练自己的数据集》 </p> <p> 《Windows版YOLOv4目标检测实战:人脸口罩佩戴检测》<br /> 《Windows版YOLOv4目标检测实战:中国交通标志识别》 </p> <p> 建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。 </p> <h3> <span style="color:#3598db;">【YOLOv4网络模型架构图】</span> </h3> <p> 下图由白勇老师绘制<img alt="" src="https://img-bss.csdnimg.cn/202006291533009066.jpg" /> </p> <p>   </p>
<p> 需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》, </p> <p> 课程链接 https://edu.csdn.net/course/detail/29865 </p> <h3> <span style="color:#3598db;">【为什么要学习这门课】</span> </h3> <p> <span>Linux</span>创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap. Show me the code. </span><strong><span style="color:#ba372a;">冗谈不够,放码过来!</span></strong> </p> <p> <span> </span>代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。 </p> <p> YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。 </p> <p> YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。 </p> <h3> <span style="color:#3598db;">【课程内容与收获】</span> </h3> <p> 本课程将解析YOLOv4的实现原理和源码,具体内容包括: </p> <p> - YOLOv4目标检测原理<br /> - 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算<br /> - 代码阅读工具及方法<br /> - 深度学习计算的利器:BLAS和GEMM<br /> - GPU的CUDA编程方法及在darknet的应用<br /> - YOLOv4的程序流程 </p> <p> - YOLOv4各层及关键技术的源码解析 </p> <p> 本课程将提供注释后的darknet的源码程序文件。 </p> <h3> <strong><span style="color:#3598db;">【相关课程】</span></strong> </h3> <p> 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括: </p> <p> 《YOLOv4目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4-tiny目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4目标检测实战:人脸口罩佩戴检测》<br /> 《YOLOv4目标检测实战:中国交通标志识别》 </p> <p> 建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。 </p> <h3> <span style="color:#3598db;">【YOLOv4网络模型架构图】</span> </h3> <p> 下图由白勇老师绘制 </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202006291526195469.jpg" /> </p> <p>   </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202007011518185782.jpg" /> </p>
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:C马雯娟 返回首页