java单行注释,多行注释,文档注释

一、单行注释

以" // "开头,注释所在行末尾默认结束

java 复制代码
//这是一个注释
int a = 0; //这也是一个注释

二、多行注释(块注释)

以" /* "开始," */ "结束,注意:不要嵌套

java 复制代码
/*
这是一段注释
这是一段注释
这是一段注释
这是一段注释
*/

三、文档注释

以" /** "开始," */ "结束

与上述两种注释不同,此注释用于生成技术文档(用 javadoc 工具),虽然三者都是给开发人员做提示,但是单行/多行注释主要用于做代码内部临时说明或者调试 ,而文档注释则是公开正式的说明,面向开发者和其他使用该部分代码的人在,直观的感受就是,在其他类中使用了某个类时,鼠标移动到上方即可看到该类的说明

例如(以下均为演示)

在我创建一个实体类user并注释后在其他类中引用

java 复制代码
package org.example.myblog_api.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 用户主表实体类
 * <p>
 * 存储系统用户的核心账户信息,支持登录、权限控制与状态管理。
 * 对应数据库表:{@code users}
 * </p>
 * <p>
 * 业务规则:
 * <ul>
 *   <li>用户名 {@code username} 和邮箱 {@code email} 均唯一,可用于登录</li>
 *   <li>密码以 bcrypt/scrypt 算法加密后存储于 {@code password_hash} 字段</li>
 *   <li>角色 {@code role} 限定为 {@code 'user'}(普通用户)或 {@code 'admin'}(管理员)</li>
 *   <li>状态 {@code status}:{@code 1} 表示启用,{@code 0} 表示禁用(逻辑删除替代方案)</li>
 *   <li>时间字段 {@code created_at} 和 {@code updated_at} 由数据库自动维护</li>
 * </ul>
 * </p>
 */
@Data
@TableName("users")
public class User {
    /**
     * 用户唯一标识,自增主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 登录名,唯一且非空
     */
    @TableField("username")
    private String username;
    /**
     * bcrypt/scrypt 加密后的密码,非空
     */
    @TableField("password_hash")
    private String passwordHash;
    /**
     * 邮箱,用于登录和找回密码,唯一(可为空)
     */
    @TableField("email")
    private String email;
    /**
     * 手机号(可选),唯一
     */
    @TableField("phone")
    private String phone;
    /**
     * 真实姓名
     */
    @TableField("real_name")
    private String realName;
    /**
     * 头像地址(可为空)
     */
    @TableField("avatar_url")
    private String avatarUrl;
    /**
     * 角色:'user' 或 'admin',默认 'user'
     */
    @TableField("role")
    private String role = "user";
    /**
     * 账户状态:1=启用, 0=禁用,默认 1
     */
    @TableField("status")
    private Integer status = 1;
    /**
     * 最后登录时间(可为空)
     */
    @TableField("last_login_at")
    private LocalDateTime lastLoginAt;
    /**
     * 创建时间,插入时由数据库自动设置为 CURRENT_TIMESTAMP
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
    /**
     * 更新时间,插入或更新时由数据库自动刷新为 CURRENT_TIMESTAMP
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}
相关推荐
团子的二进制世界几秒前
G1垃圾收集器是如何工作的?
java·jvm·算法
Max_uuc4 分钟前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
故事不长丨4 分钟前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
long3165 分钟前
Aho-Corasick 模式搜索算法
java·数据结构·spring boot·后端·算法·排序算法
牵牛老人7 分钟前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
froginwe1116 分钟前
Python3与MySQL的连接:使用mysql-connector
开发语言
rannn_11132 分钟前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
灵感菇_34 分钟前
Java HashMap全面解析
java·开发语言
杜子不疼.36 分钟前
PyPTO:面向NPU的高效并行张量编程范式
开发语言
qq_124987075336 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计