J***A注释语言组织,j***a语言注释分别有

dfnjsfkhak 24 0

大家好,今天小编关注到一个比较意思的话题,就是关于java注释语言组织的问题,于是小编就整理了2个相关介绍注释语言组织的解答,让我们一起看看吧。

  1. Java的注解是什么原理?
  2. c中的注释可分为三种类型分别是?

JAVA注解什么原理

首先,从一个简单的注解开始,@Target(ElementType.TYPE)

@Retention(RetentionPolicy.RUNTIME)

JAVA注释语言组织,java语言注释分别有-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

public @interface Test {

String value() default "";

}

JAVA注释语言组织,java语言注释分别有-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

使用j***ap -verbose命令查看这个注解的class文件,发现这个注解被编译成了接口,并且继承了j***a.lang.annotation.Annotation接口,接口是不能直接实例化使用的,当在代码中使用这个注解,并使用getAnnotation方法获取注解信息时,JVM通过动态代理的方式生成一个实现了Test接口的代理对象实例,然后对该实例的属性赋值,value值就存在这个代理对象实例中。

如果顺着getAnnotation方法继续跟踪源代码,会发现创建代理对象是在AnnotationParser.j***a中实现的,这个类中有一个annotationForMap方法。在annotationForMap方法内部使用Proxy.newProxyInstance方法在运行时动态创建代理,AnnotationInvocationHandler实现了InvocationHandler接口,当调用代理对象的value()方法获取注解的value值,就会进入AnnotationInvocationHandler类中的invoke方法,深入invoke方***发现,获取value值最终是从AnnotationInvocationHandler类的memberValues属性中获取的,memberValues是一个Map类型,key是注解的属性名,这里就是“value”,value是使用注解时设置的值。

因为回答中不能插入源码做讲解***,更多详细内容可以关注『J***a实战技术』主页的原创文章《J***a注解是如何玩转的,面试官和我聊了半个小时》。

JAVA注释语言组织,java语言注释分别有-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

c中的注释可分为三种类型分别是?

1. 单行注释(//):在代码行内使用双斜线(//)进行注释,该行后面的内容将被视为注释,不会被编译器执行
示例:
```
int x = 10; // 定义变量x为10
```
2. 块注释(/* ... */):使用 /**/ 将一段代码或多行代码包围起来作为注释,被注释的代码将被视为注释内容,编译器会忽略这部分代码。
示例:
```
/* 这是一个块注释
实现了一个函数
*/
void func() {
// 函数体
}
```
3. 文档注释(/** ... */):在特定的注释格式下,使用多行注释(/**/)来编写对函数、类、变量等的说明文档。这种注释通常用于生成代码文档的工具
示例:
```
/**
* 这是一个简单的加法函数
* @param a 加数1
* @param b 加数2
* @return 两个加数的和
*/
int add(int a, int b) {
return a + b;
}
```

到此,以上就是小编对于J***A注释语言组织的问题就介绍到这了,希望介绍关于J***A注释语言组织的2点解答对大家有用

标签: 注释 注解 使用