大家好,今天小编关注到一个比较有意思的话题,就是关于在java语言中有效注释的问题,于是小编就整理了3个相关介绍在Java语言中有效注释的解答,让我们一起看看吧。
J***a中的@param注解如何使用?
注解,@param是参数的解释。如:/***@param s 这里表示对s的文字说明,描述*/public void aa(String s){}一般j***a中@表示注解,解释一个方法,类,属性的作用。J***a是一种可以撰写跨平台应用软件的面向对象的程序设计语言。J***a 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。二. 研发背景J***a是由Sun Microsystems公司推出的J***a面向对象程序设计语言(以下简称J***a语言)和J***a平台的总称。J***a由James Gosling和同事们共同研发,并在1995年正式推出。J***a最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为J***a,并重新设计用于开发internet应用程序。用J***a实现的HotJ***a浏览器(支持J***a applet)显示了J***a的魅力:跨平台、动态Web、Internet计算。
k8s注解有什么用?
K8S中的对象除了可以用标签来标识/归类外,还可以用加注解(annotations)属性,它属于metadata的子标签,也是键值对的格式。此处的注解和j***a中的注解完全不一样,非要类比的话,J***a中的注解更像是Kubernetes中的标签-标识特定的用途,而Kubernetes中的注解更像是注释,相对于标签来说,可以添加更多更详细的内容,但总共不能超过256KB。
J***a的注解是什么原理?
首先,从一个简单的注解开始,@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
String value() default "";
}
使用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是使用注解时设置的值。
因为回答中不能插入[_a***_]做讲解***,更多详细内容可以关注『J***a实战技术』主页的原创文章《J***a注解是如何玩转的,面试官和我聊了半个小时》。
到此,以上就是小编对于在j***a语言中有效注释的问题就介绍到这了,希望介绍关于在j***a语言中有效注释的3点解答对大家有用。