精华内容
下载资源
问答
  • Java注释

    2020-01-26 00:00:47
    1 Java 注释 Java 多行注释 3 Java 文档注释 1 Java 注释 您可以在Java代码中包含注释,这将提高源代码的可读性。 Java 支持单行以及多行注释注释中的字符将被 Java 编译器忽略。 Java 单行注释以 // 开始,...

    目录

    1 Java 注释

    Java 多行注释

    3 Java 文档注释


    1 Java 注释

    您可以在Java代码中包含注释,这将提高源代码的可读性。 

    Java 支持单行以及多行注释。注释中的字符将被 Java 编译器忽略。

    Java 单行注释以 // 开始,直到行尾为止。例如:

    // 这是一个单行注释
    x = 10; // 代码后的单行注释

    单行注释也能以 /* 开始,以 */为止。例如:

    /* 这也是一个单行注释 */

    提示:在编写代码时添加注释是一种很好的做法,因为当你需要回顾它时,以及其他人可能需要阅读它时,它们提供了解释和理解。

    注释:编译器是不执行的,就是自己看或者别人看,人人交互,不是人机交互! 

    为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。 注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。 在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。

    Java 多行注释

    Java 也支持跨多行的注释。

    Java 多行注释以 /* 开始,以 */为止。例如:

    /*  这是一个
     *  多行注释 
     */

    请注意,Java 不支持嵌套的多行注释,但是,您可以在多行注释中嵌套单行注释。

    例如:

    /* 嵌套单行注释
       // 单行注释
     */
    1. 单行注释:  使用“//”开头,“//”后面的单行内容均为注释。

    2. 多行注释:   以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。

    3. 文档注释:   以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)

    /**
     * Welcome类(我是文档注释)
     * @author 赵广陆
     * @version 1.0
     */
    public class Welcome {
        //我是单行注释
        public static void main(String[] args/*我是行内注释 */) {
            System.out.println("Hello World!");
        }
        /*
           我是多行注释!
           我是多行注释!
         */
    }

    3 Java 文档注释

    文档注释允许你在程序中嵌入关于程序的信息。你可以使用 javadoc 工具软件来生成信息,并输出到HTML文件中。

    文档注释,使你更加方便的记录你的程序信息。

    Java 文档注释以 /** 开始,以 */结束。例如:

    /** 这是一个文档注释 */
    
    /** 这也是一个
        文档注释 */

    在开始的 /** 之后,第一行或几行是关于类、变量和方法的主要描述。

    之后,你可以包含一个或多个各种各样的@标签。每一个@标签必须在一个新行的开始或者在一行的开始紧跟星号(*).

    下面是一个类的说明注释的实例:

    /**
    * 这个类演示了文档注释
    * @author 赵广陆
    * @version 1.0
    */
    展开全文
  • java注释

    千次阅读 2019-05-12 21:54:00
    Java注释java中注释有三种:这些都称之为java doc标记,含义如下: java中注释有三种: 单行注释 //注释的内容, 多行注释 /…注释的内容…/, 文档注释 /**…注释的内容….*/。 就是为了便于javadoc程序自动生成...

    java中注释有三种:

    • 单行注释 //注释的内容,
    • 多行注释 /…注释的内容…/,
    • 文档注释 /**…注释的内容….*/。
      就是为了便于javadoc程序自动生成文档

    这些都称之为java doc标记,含义如下:

    @author 标明开发该类模块的作者
    @version 标明该类模块的版本
    @see 参考转向,也就是相关主题
    @param 对方法中某参数的说明
    @return 对方法返回值的说明
    @exception 对方法可能抛出的异常进行说明

    其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号 (,) 隔开。@version 也可以使用多次,只有第一次有效。@param、@return 和 @exception 这三个标记都是只用于方法的。

    展开全文
  • Java 注释

    千次阅读 多人点赞 2015-11-18 23:48:25
    Java 注释 五月份得知入职YunOS, 开始学习Java, 断断续续学习和使用Java将近半年, 越来越喜欢这个工具, 因此后来被... 写的第一篇Java的博客, 就从最基础的Java注释开始!引 程序员圈有一个笑话 最讨厌在写代码的时

    Java 注释

    标签 : Java基础


    五月份得知入职阿里云OS, 才开始学Java, 断断续续学习/使用半年, 越来越喜欢这个语言/工具. 后来被拥抱变化之后, 拿到的大部分offer是Java服务端研发; 一路走来, 踩了很多坑, 也有了一点小小的心得, 而且博客已经停更几个月, 今天就以博客形式把他记录下来吧.
    2015下半年第一篇博客, 从最基础的Java注释开始:


      程序员圈有一个笑话

    最讨厌在写代码的时候写注释, 最讨厌别人的代码里面不写注释.


    为什么写注释?

      我自己亲身经历:
      这段时间在微店实习, 第一个接手的项目是将原先北京团队的代码迁移到杭州, 由于底层技术架构的更换, 大部分代码需要重写, 前提是要理解原先的业务逻辑, 但当我在SVN上把代码拉下来, 看到意大利面似的一大坨代码里只有寥寥几行注释时, 整个人都不好了…
      另一个遇到场景, 有时自己的代码有Bug, 或者需要重构, 此时就需要Review代码, 可是突然发现自己已经很难理解原先逻辑了(很可能这段代码只是你前几天刚刚写的), 因为我们已经很难回到当时状态.
      还有一个重要的原因就是文档, 往往一个系统被开发出来, 文档要么不全, 要么更新落后, 如果后人要接手这一套系统, 就必须直接阅读源码, 如果此时在代码的关键逻辑之处能够有一两行注释提示, 新人就没有必要绞尽脑汁去猜测当时的设计方案了.
      后来自己写代码时就尽量写注释提示, 虽然不一定完全按照下面的注释规范, 但会尽量用 最简单的语言把问题阐述清楚, 在逻辑转折之处添加几行说明, 无论是自己还是未来的接手人, 都会对现在的你感激不尽.


    注释类型

      Java提供三种注释方式: 单行注释、多行注释、文档注释.

    • 单行/多行注释
      单行注释与多行注释的作用就不再赘, IDEA快捷键分别如下:
         command+/: 以//快速注释一行或多行 :
    //        Integer[] array = new Integer[10];
    //        for (int i = 0; i < array.length; ++i){
    //            array[i] = new Integer(i);
    //        }

       command+option+/: 以/**/快速注释一行或多行

    /*
            Integer[] array = new Integer[10];
            for (int i = 0; i < array.length; ++i){
                array[i] = new Integer(i);
            }
    */
    • 文档注释
        Java提供了一种功能非常强大的注释形式: 文档注释. 如果编写Java源代码时添加了文档注释, 然后通过JDK提供的javadoc工具就可以直接将代码里的注释提取成一份系统的API文档. 其注释形式为/** */
        /**
         * Initializes a newly created {@code String} object so that it represents
         * the same sequence of characters as the argument; in other words, the
         * newly created string is a copy of the argument string. Unless an
         * explicit copy of {@code original} is needed, use of this constructor is
         * unnecessary since Strings are immutable.
         *
         * @param  original
         *         A {@code String}
         */

    # javadoc 注释标签语法

    标签 作用域 说明
    @author 标明开发该类模块作者
    @version 标明该类模块的版本
    @see 类, 属性, 方法 参考转向(相关主题)
    @param 方法 对方法中某参数的说明
    @return 方法 对方法返回值的说明
    @exception 方法 抛出的异常类型
    @throws 方法 与@exception相同
    @deprecated 方法 不建议使用该方法

    注释原则

    下面是我自己看到和用过的注释原则:

    1. 注释准确简洁
      内容简单明了、含义准确, 尽量用最少的语言把问题阐述清楚, 防止注释的多义性,错误的注释不但无益反而有害.
    2. 避免复杂注释
      如果需要用复杂的注释来解释代码, 请检查此代码是否应该重写. 尽一切可能不注释难以理解的代码, 最好选择重构.
    3. TODO List
      为尚未完成的代码添加TODO注释, 提醒自己还需后续完善.
    4. 注释形式统一
      在整个项目中,使用一致的结构样式来构造注释.
    5. 注释与代码同步更新
      边写代码边注释,因为以后很可能没有时间来写注释了(可能在今天看来很明显的东西六周以后或许就不明显了). 通常描述性注释先于代码创建解释性注释在开发过程中创建提示性注释在代码完成之后创建. 修改代码的同时修改注释,保证代码与注释同步.
    6. 注释就近
      保证注释与其描述的代码相邻, 在代码上方或右方(最好上方)进行注释.
    7. 注释不要过多
      注释必不可少,但也不应过多,注释占程序代码的比例少于20%为宜.注释是对代码的“提示”,而不是文档. 如果代码本来就一目了然就不加注释.
    8. 删除无用注释
      在代码交付或部署发布之前, 删除临时或无关注释, 避免日后维护中产生混乱.
    9. 必加注释之处
      • 典型算法必有注释
      • 代码不明晰处必有注释
      • 在循环/逻辑分支组成的代码中加注释
      • 为他人提供的接口必有注释
      • 代码修改处加修改标识

    JDK注释参考:

    • 类/接口注释
    /**
     * The <code>String</code> class represents character strings. All
     * string literals in Java programs, such as <code>"abc"</code>, are
     * implemented as instances of this class.
     * (其他描述)
     * @author  Lee Boynton
     * @author  Arthur van Hoff
     * @author  Martin Buchholz
     * @author  Ulf Zibis
     * @see     java.lang.Object#toString()
     * @see     java.lang.StringBuffer
     * @see     java.lang.StringBuilder
     * @see     java.nio.charset.Charset
     * @since   JDK1.0
     */
    
     public final class String
        implements java.io.Serializable, Comparable<String>, CharSequence {
        ...
    }
    • 构造器注释
        /**
         * Initializes a newly created {@code String} object so that it represents
         * the same sequence of characters as the argument; in other words, the
         * newly created string is a copy of the argument string. Unless an
         * explicit copy of {@code original} is needed, use of this constructor is
         * unnecessary since Strings are immutable.
         *
         * @param  original
         *         A {@code String}
         */
        public String(String original) {
            this.value = original.value;
            this.hash = original.hash;
        }
    • 方法注释
        /**
         * Returns <tt>true</tt> if, and only if, {@link #length()} is <tt>0</tt>.
         *
         * @return <tt>true</tt> if {@link #length()} is <tt>0</tt>, otherwise
         * <tt>false</tt>
         *
         * @since 1.6
         */
        public boolean isEmpty() {
            return value.length == 0;
        }
    • 字段/属性注释
        /** The value is used for character storage. */
        private final char value[];
    
        /** Cache the hash code for the string */
        private int hash; // Default to 0
    
        /** use serialVersionUID from JDK 1.0.2 for interoperability */
        private static final long serialVersionUID = -6849794470754667710L;
    
        /**
         * Class String is special cased within the Serialization Stream Protocol.
         *
         * A String instance is written initially into an ObjectOutputStream in the
         * following format:
         * <pre>
         *      <code>TC_STRING</code> (utf String)
         * </pre>
         * The String is written by method <code>DataOutput.writeUTF</code>.
         * A new handle is generated to  refer to all future references to the
         * string instance within the stream.
         */
        private static final ObjectStreamField[] serialPersistentFields =
                new ObjectStreamField[0];
    • 方法内注释
        public boolean regionMatches(boolean ignoreCase, int toffset,
                String other, int ooffset, int len) {
            char ta[] = value;
            int to = toffset;
            char pa[] = other.value;
            int po = ooffset;
            // Note: toffset, ooffset, or len might be near -1>>>1.
            if ((ooffset < 0) || (toffset < 0)
                    || (toffset > (long)value.length - len)
                    || (ooffset > (long)other.value.length - len)) {
                return false;
            }
            while (len-- > 0) {
                char c1 = ta[to++];
                char c2 = pa[po++];
                if (c1 == c2) {
                    continue;
                }
                if (ignoreCase) {
                    // If characters don't match but case may be ignored,
                    // try converting both characters to uppercase.
                    // If the results match, then the comparison scan should
                    // continue.
                    char u1 = Character.toUpperCase(c1);
                    char u2 = Character.toUpperCase(c2);
                    if (u1 == u2) {
                        continue;
                    }
                    // Unfortunately, conversion to uppercase does not work properly
                    // for the Georgian alphabet, which has strange rules about case
                    // conversion.  So we need to make one last check before
                    // exiting.
                    if (Character.toLowerCase(u1) == Character.toLowerCase(u2)) {
                        continue;
                    }
                }
                return false;
            }
            return true;
        }
    
        String(char[] value, boolean share) {
            // assert share : "unshared not supported";
            this.value = value;
        }
    
        char[] val = value;   /* avoid getfield opcode */
    
        public boolean contentEquals(CharSequence cs) {
            if (value.length != cs.length())
                return false;
            // Argument is a StringBuffer, StringBuilder
            if (cs instanceof AbstractStringBuilder) {
                char v1[] = value;
                char v2[] = ((AbstractStringBuilder) cs).getValue();
                int i = 0;
                int n = value.length;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
            // Argument is a String
            if (cs.equals(this))
                return true;
            // Argument is a generic CharSequence
            char v1[] = value;
            int i = 0;
            int n = value.length;
            while (n-- != 0) {
                if (v1[i] != cs.charAt(i))
                    return false;
                i++;
            }
            return true;
        }

    附: 开发者工具

    • IDEA: 比较给力的Java IDE, 用过都说好(“自从用了IDEA, 写代码越来越有劲儿了”). 非常多很赞的功能, 如对Git、Maven的原生支持, 自动代码提示, 自带命令行, 黑色主题, UML类图生成… 而且现在IDEA家族也越来越强, Android开发的Android Studio、IOS的AppCode、C/C++的CLion、Python的PyCharm、PHP的PhpStorm、前端的WebStorm等等, 详细可查看Jet Brains官网.
    • Git&GitHub: Git就不用多做介绍了, 算是开发者居家旅行之必备吧. 这方面的书/视频很多, 但在此我只推荐一部文档: 廖雪峰的Git教程. 虽然Git内容繁多, 但这篇文档却直取要害, 非常实用, 读了很多遍.
    • Maven: Maven方面我也是新手, 在此我只推荐一部还不错的Maven方面的书, Maven实战, 一部国人写的实战类书籍.
    • SQLPro for MySQL: 一款MySQL-GUI客户端, 用过MySQL-WorkBench、Navicat、Sequel Pro, 但最后还是选择的SQLPro for MySQL.
    • ProcessOn: 免费绘图网站, UML、流程图、网络拓扑… 上手容易.
    • Markdown: 这方面我也是初学者, 推荐两个客户端Cmd MarkdownMWeb.
    • JSON查看&编辑
      这方面除了TextLab没有发现其他好用的客户端, 只能推荐几个网站:
      • qqe2.com: 对JSON数据排错提示功能很强大;
      • json.cn, 查看JSON数据非常美观, 支持代码折叠.
    • RegExRx
      Mac上非常好用的正则表达式匹配引擎, 用于测试正则表达式书写的正确与否.
    • iTerm2
      忘掉Mac自带的终端吧, iTerm你值得拥有.
    • Alfred
      最后, 推荐Mac效率神器Alfred, 推荐博客: 从零开始学习 Alfred(上):基础功能及设置, 其他功能还在探索.

    在此只推荐了我所知道和常用一些小工具, 欢迎同学补充.


    展开全文
  • JAVA注释

    千次阅读 2018-11-28 20:47:33
    一、可以用注释来调试程序。   二、单行注释&lt;//注释内容&gt;,不能跨行。   三、多行注释&lt;/*注释内容*/&gt;,可以跨行   四、文档注释确保了注释与源码的连接,便于维护,格式&...

    一、可以用注释来调试程序。

     

    二、单行注释<//注释内容>,不能跨行。

     

    三、多行注释</*注释内容*/>,可以跨行

     

    四、文档注释确保了注释与源码的连接,便于维护,格式</**注释内容*/>>,不同于单行和多行注释放在要注释语句的后面,文档注释必须放在要注释的语句前面,且文档注释默认只处理public和protected修饰的类、接口及方法,如果要处理privated修饰的,需要在javadoc中命令汇总增加“- privated”命令

    (一)将文档注释转为API文档,用javadoc命令,格式:“javadoc <命令选项>   java源文件(或包文件名)”,源文件或包支持通配符,支持多个包一起写。

    (二)常用命令选项包括:

    1、-d <指定生产路径>

    2、-windowtitle <浏览器窗口标题>

    3、-doctitle <概述页面标题>      注意:只有多个包下的源文件生成的API才有概述页面

    4、-header <包含所有页面的页面标题>

    (三)文档注释中可以用javadoc标记(标记放在/**和*/之间即可),常用标记如下:

    1、@author       标注作者

    2、@version       标注版本

    3、@deprecated   不推荐的使用的类或方法,给出取代该方法或类的建议

    4、@see          参见,可以用带链接的<>标签,也可以直接跟方法或变量路径,但是类名与方法名(变量名)直接用#号,而不是.号,包名与类名仍然用.号。

    5、@throws       抛出异常

    6、@exception    抛出异常

    7、@param        方法参数说明    注:同一个方法多个参数说明必须放一起

    8、@return       方法返回值说明

    注意:@param、@return、@throws、@exception只能用于标记方法;同时生成的文档默认不含@author和@vertion属性,若有必要,需在javadoc语句汇总增加“- author  -version”命令。

     

    五、包注释。包注释不是直接放在java源码中的,但也要通过javadoc生成在API中,包文件通过标准的HTML文件提供,注释内容位于该文件中的<body>标签中,该文件需命名为package.html,并与该包下的所有源文件放在一起。

    运行时用“javadoc <命令选项>   包文件名”即可。

     

    六、其他

    (一)注释内容可以使用HTML修饰符,但不要使用<h1>或<hr>等标题标签,否则会产生冲突,因为javadoc会产生自己的标题。

    (二)类的文档注释需在import语句之后。

    展开全文
  • java 注释

    2008-08-05 11:23:00
     J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源代码的。 在J2SE5.0中可以自定义注释。使用时在@后面跟注释的名字。 在J2SE5.0的java.lang包中预定义了三个注释。它们是Override、...
  • JAVA 注释

    千次阅读 2012-02-17 11:02:33
     Java注释中的@deprecated用于在用Javadoc工具生成文档的时候,标注此类/  接口、方法、字段已经被废止。  不 过后者还有一个功能就是和源代码标记@Deprecated同样的功能,在JDK1.4  版本之后,该...
  • java注释分为3种 单行注释 // 注释内容 多行注释 /* 注释内容 */ 文档注释 /** 注释内容 */
  • Eclipse Java注释模板

    千次下载 热门讨论 2015-08-06 17:47:10
    Eclipse Java注释模板。 类注释: /** * @ClassName * @Description * @author * @Date * @version */ 属性注释: /** * @Field @param */ 函数注释: /** * @Description * @param p1 * @param ...
  • java注释方法

    千次阅读 2019-05-19 18:41:15
    Java注释的好处:java注释可以帮助我们去理解代码,Javac不会去编译注释,Java运行也不会管我们的注释内容,合理运用注释可以让我们的代码更容易让编程人员理解。 Java的注释有以下几种: 1.单行注释:// 单行注释...
  • Java注释说明

    2019-05-22 22:45:31
    **Java注释一共有三种 1.单行注释 // 例:System.out.println(“Hello!”); //输出Hello! 单行注释不能换行 2.多行注释 /*这是多行注释 的示例/ 3.文档注释 /**开始 */结束 /**这是文档注释 的示例/ 只有文档注释在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,314
精华内容 20,925
关键字:

java注释

java 订阅