大家好,今天小编关注到一个比较有意思的话题,关于java语言的注释的是的问题,于是小编就整理了3个相关介绍Java语言的注释的是的解答,让我们一起看看吧。
j***a中的几种注释方式?
首先我得说一下为啥要写注释。
注释仅仅是一段描述某个类或某个方法或某段代码的功能或作用,程序运行不会运行注释部分,并不会影响程序的运行。
既然注释对程序的执行没有任何影响,那么是否应该省略注释呢?
我认为不应该。因为代码未必是一直给一个人看。你终究会离开这个公司,如果不写注释,对于接手你代码的人理解起来就比较费劲。其次,人脑的记忆力是有限的,你不可能记住一个项目的所以实现细节。如果没有注释,当将来的某天在回头来看自己写过的代码,你依然会迷茫一会。所以注释是有必要。
J在***a中有三种注释,分别为:单行注释、多行注释和文档注释。
单行注释以“//”进行注释。通常只对当前行起注释作用。而多行注释则是以“/**/”囊括一段代码,被囊括的代码及被注释。文档注释则是以/***/加在类或方法前面,在生成API文档时***生成相关描述性信息。通常情况下,文档注释会配合一些注解来使用。
其中单行注释和多行注释是大多数编程语言都会支持的注释方式,而文档注释则是J***a所特有。
总之,不论是哪种编程语言,注释都不可或缺。
j***a中的几种注释方式?
1、第一步我们首先需要知道j***a一共有三种注释方式,单行注释//,多行注释 /* */,文档注释/** */,如下图所示:
2、第二步打开eclipse,在j***a代码中使用单行注释//,一般单行注释,注释少量代码或者说明内容,如下图所示:
3、第三步j***a代码中使用多行注释/* */,一般使用多行注释大量的代码或者说明内容,如下图所示:
4、第四步使用文档注释/** */,文档注释一般用于对类和方法进行功能说明,如下图所示:
5、第五步我们也可以使用快捷键注释代码,选中要注释的代码,如下图所示:
6、第六步使用ctrl+?键进行注释代码,再次按ctrl+?键就取消注释,也可以使用ctrl+shift+c对jsp的代码进行注释,如下图所示:
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是使用注解时设置的值。
因为回答中不能插入源码做讲解***,更多详细内容可以关注『J***a实战技术』主页的原创文章《J***a注解是如何玩转的,面试官和我聊了半个小时》。
到此,以上就是小编对于j***a语言的注释的是的问题就介绍到这了,希望介绍关于j***a语言的注释的是的3点解答对大家有用。