编码规范 - 养成良好的Java编码习惯

Windows下飞桨PaddlePaddle 2.6.1 GPU版环境搭建全攻略(含CUDA 11.7配置避坑指南) 本文详细介绍了在Windows系统下搭建飞桨PaddlePaddle 2.6.1 GPU版环境的完整流程,特别针对CUDA 11.7和cuDNN的安装提供了避坑指南。从Anaconda环境配置、CUDA Toolkit安装到飞桨GPU版的验证,手把手帮助开发者高效完成深度学习环境搭建,解决常见问题并优化性能。 阅读详情
  • 注释规范
    • 类注释
    • 方法注释
    • 行级注释
    • DTO/Param注释
  • 编码规范
    • 命名风格
    • 常量定义
    • 代码格式
    • OOP 规约
    • 集合处理
    • 控制语句
  • 异常日志规范
    • 异常处理
    • 日志规约

一、注释规范

类注释

类、类属性使用Javadoc规范,类上描述该类的主要作用,注释尽可能详细,推荐把使用该类地方使用@see注解进行标注,类属性详细描述该属性的保存内容。
类注释示例:

/**
 * 统一资源Aop切面定义
 * 根据自定义注解配置自动设置配置的资源类型到指定的字段
 * @author:于起宇 <br/>
 * ===============================
 * Created with IDEA.
 * Date:2017/12/15
 * Time:14:05
 * ================================
 */

类属性注释示例:

/**
 * 资源处理业务逻辑
 */
Autowired
ResourcePushService resourcePushService;
方法注释

接口方法、实现类方法、抽象方法等,详细描述该方法主要作用,尽可能的描述出方法的主要流程步骤,方法定义的每一个参数都需要有详细的注释描述,建议添加方法返回值描述。
方法注释示例:

    /**
     * 资源设置切面方法
     * 拦截配置了@ResourceMethod注解的class method
     * cglib仅支持class 方法切面,接口切面不支持
     * @param proceedingJoinPoint 切面方法实例
     * @param resourceMethod 方法注解实例
     * @return 原方法返回对象
     */
    @Around(value = "@annotation(resourceMethod)")
    public Object resourcePutAround(ProceedingJoinPoint proceedingJoinPoint, ResourceMethod resourceMethod)
        throws Throwable
    {
        //...
    }

如果是业务逻辑方法注释建议添加步骤,如下所示:

    /**
     * 创建帖子
     * - 转换参数实体为
     * - 保存帖子基本信息
     * @param param 创建帖子请求参数实体
     * @return 帖子编号
     * @throws LogicException
     */
    public String create(CreateTopicParam param) throws LogicException {
        //...
    }

在上面代码中-分隔符代表主要执行步骤,每一个步骤以-分隔符开始,如果方法内存在逻辑分支处理,请看下面行注释。

行注释

行级注释一般都是方法内使用到,分为单行注释、多行注释,单行注释采用//设置,多行注释采用/* */设置,如下所示:
单行注释:

// 执行方法,获取返回值

多行注释:

/*
 * 执行方法,获取返回值
 * 获取返回值进行后续逻辑处理
 */
DTO/Param注释

我们在实际开发过程中数据库对应的实体是不允许直接拿出来添加一些附加字段的,也就是禁止添加非该数据表对应实体内的字段,这种情况我们需要定义DTO/Param。

DTO注释

DTO是数据返回实体定义,如果我们在查询数据库时需要关联其他表的数据并且返回给前端,那么我们可以创建XxxDTO,注意:DTO全部大写,只需要继承查询逻辑的主表实体就可以完成附加字段的添加,要为每一个附加字段添加javadoc详细注释,如下所示:

/**
 * 帖子列表数据转换实体
 * @author:于起宇 <br/>
 * ===============================
 * Created with IDEA.
 * Date:2018/1/8
 * Time:10:52
 * ================================
 */
@Data
public class TopicListDTO
        extends CommunicationTopicInfoEntity {

    /**
     * 用户昵称
     */
    private String userNickName;
    /**
     * 所属机构名称
     */
    private String orgName;
    //...
}
Param注释

对于接口、后台来说接受请求时一般都是带着一些参数,目前我们系统是前台完全分离,所以后台其实变相的也是接口,在上面DTO也有说到数据实体不允许添加附加参数,我们的参数也不可能都是数据实体内的字段,这时需要创建对应的参数实体XxxParam,参数实体内的所有字段都需要添加javadoc注释,如下所示:

/**
 * 查询帖子列表
 * - 用于查询自己、他人、关键字、首页帖子请求参数
 *
 * @author:于起宇 <br/>
 * ===============================
 * Created with IDEA.
 * Date:2018/1/8
 * Time:10:31
 * ================================
 */
@Data
public class SelectTopicParam extends PagerParam {
    /**
     * 用户编号
     */
    private String userId;
    /**
     * 查询关键字
     */
    @Length(max = 30)
    private String keyWord;
}

二、编码规范

命名风格
  1. 代码中命名不能以下划线或美元符号开始,也不能以下划线或美元符合结束。

错误示例:

_name / name_ / $name / name$ / __name / name__
  1. 命名严禁出现中文拼音与英文混合方式出现,不允许直接使用中文方式命名

错误示例:

WenZhang[文章] / WenZhangInfo[文章信息] / getTopicLieBiao()[获取文章列表] / int 数量 = 0
  1. 类名使用UpperCamelCase风格,DTO、VO除外

错误示例:

QRCode / UserInfoDto / XMLService

正确示例:

QrCode / UserInfoDTO / XmlService
  1. 方法名、参数名、成员变量、局部变量统一使用lowerCamelCase风格,必须使用驼峰命名方式。

错误示例:

localvalue / GetUserInfo() / userid

正确示例:

localValue / getUserInfo() / userId
  1. 常量命名全部大写,单词间下划线隔开,完整的表达含义,名字可以过长。

错误示例:

MAX_COUNT / NAME

正确示例:

MAX_STOCK_COUNT / DEFAULT_ORG_NAME
  1. 抽象类命名使用Abstract或者Base开头,异常类命名使用Exception结尾,测试类命名时以将要测试的类全名 + Test。

正确示例:

AbstractCodeMessageService / BaseCodeMessageService / LogicException / UserControllerTest
  1. 包名统一使用小写,每个分隔符必须为自然语义的英文单词,另外包名统一使用单数含义,如果需要复数含义,则可以在类名上体现。

正确示例:

com.sanmi.framework.core / com.sanmi.framework.orm
  1. 杜绝不规范的缩写,避免词义表达不清楚。

错误示例:

AbstractClass = > AbsClass
condition => condi
  1. 接口中的方法和属性不要添加任何修饰符(public也不要添加),为了保持代码的简洁性,加上有效的javadoc注释。

错误示例:

public abstract void commit();

正确示例:

void commin(); / String COMPANY_NAME = "sanmi";
  1. 对于Service和DAO类命名时实现类后缀要以Impl结尾,Mapper接口不存在实现类,无需处理。

正确示例:

UserInfoService / UserInfoServiceImpl
  1. 枚举类名统一带上Enum后缀,枚举成员名称需要全大写,单词间使用下划线隔开。

正确示例:

枚举名称 => UserStatusEnum
成员名称 => ENABLE / DISABLED / DELETE
  1. 各层方法命名规约
    Service/DAO/Mapper层方法命名规约如下:
    • 获取单个对象的方法用get作为前缀
    • 获取多个对象的方法用list作为前缀
    • 获取统计值的方法用count作为前缀
    • 插入方法用save / insert作为前缀
    • 删除方法用delete / remove作为前缀
    • 修改方法用update作为前缀
常量定义
  1. 不允许任何魔法值(未经过预先定义的常量)直接出现在代码中

错误示例:

if("enable".equals(user.getStatus())) { 
   //.. 
}
  1. 使用封装类型代替基本数据类型

正确示例:

Integer => int
Double => double
Long => long
...
  1. 如果常量仅在一个范围内变化,使用enum来代替定义

正确示例:

@Getter
public enum  UserBzEnum
{
    /**
     * 普通用户
     */
    APP_USER("0"),
    /**
     * 月嫂
     */
    NANNY("1"),
    /**
     * 医生
     */
    DOCTOR("2")
    ;
    private String value;

    UserBzEnum(String value) {
        this.value = value;
    }
}
代码格式
  1. 大括号的使用约定,如果大括号内为空,直接使用{}即可,不需要换行;如果非空代码,则需要:
    • 左大括号前不换行
    • 左大括号后换行
    • 右大括号换行
    • 右大括号后还有else等代码则不换行;表示终止的右大括号后必须换行。
  2. 左小括号和字符之间不出现空格;右小括号和字符之间也不出现空格。
    错误示例:
if ( a == b )
  1. if / for / while / switch / do 等保留字与括号之间都必须加空格
  2. 任何二目、三目运算符的左右两边都需要加一个空格。

正确示例:

 if (ValidateTools.isEmpty(uploadBackEntity) || ValidateTools.isEmpty(uploadBackEntity.getUploadUrl())) {
 //...
        }
  1. 采用4个空格缩进,禁止使用Tab控制符。
  2. 行级注释的//与注释内容之间有且仅有一个空格。

正确示例:

// 定义用户名
String userName = user.getName();
  1. 单行字符不超过120个,超过需要换行,换行原则如下:
    • 第二行相对于第一行缩进4哥空格,从第三行开始不再进行缩进
    • 运算符一起换行(如:+)
    • .符号一起换行
    • 方法调用中的多个参数需要换行时,在逗号后进行。

正确示例:

StringBuffer buffer = new StringBuffer();
// 超过120个字符的情况下,换行缩进4个空格,``.``和方法名一块换行
buffer.append("san").append("mi") ...
        .append("ke")
        .append("ji");
// 参数过多超120个字符时,在 , 后换行
method(args1, args2, args3, ...
args98, args99
)        
  1. 方法参数在定义和传入时,多个参数后面必须加空格。
    正确示例:
method(args1, args2);
OOP 规约
  1. 避免通过一个类的对象引用访问此类的静态变量或者静态方法,会造成编译器解析成本,直接用类名访问即可。【JVM堆、栈、静态代码块解析成本是不一样的】
  2. 所有覆盖方法,必须添加@Overrider注解
  3. 对外部正在调用或者二方库依赖的接口,不允许修改方法签名,以避免对接口调用方产生影响;如果接口已经过时,必须添加@Deprecated注解,并清晰的说明替代接口或者替代服务。
  4. 禁止使用过时类或方法。
  5. Object的equals方法容易抛出空指针异常,应使用常量或确定值的对象来调用equals方法。

错误示例:

object.equals("test");

正确示例:

"test".equals(object)
  1. 所有相同类型的封装类之间比较,必须使用equals方法。

说明:int封装类Integer在-128 ~ 127范围内的赋值会在IntegerCache.cache中产生,该区间的值可以直接使用==进行比对,但是该区间外的值都会以引用类型在堆内创建,对象之间是无法使用==来进行比对的!

  1. 构造函数内禁止编写任何业务逻辑,如果有业务逻辑请创建init方法使用。
集合处理
  1. 使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型完全一样的数组,大小则是list.size()。

正确示例:

List<String< list = new ArrayList();
list.add("jinan");
list.add("sanmi");
// 生成list长度的数组实例
String[] array = new String[list.size()];
// 执行集合转换数据
array = list.toArray(array);
  1. 在使用工具类Arrays.asList()方法时,不能使用修改集合相关的方法,add / remove / clean方法会抛出异常。
  2. 禁止在foreach循环内进行元素的remove / add操作,remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。

正确示例:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (condition) {
        iterator.remove();
    }
}
控制语句
  1. 在一个switch内,每个case要么使用break / return来终止,要么注释说明程序将继续执行到具体的哪个case为止;在一个switch内必须包含default代码块在所有case之后,就算业务逻辑为空也要存在!
  2. 在if / else / for / while / do语句中必须使用大括号,即便是只有一行代码,也需要添加大括号。

错误示例:

if (condition) statements;

正确示例:

if (condition) {
    statements;
}
  1. 在表达异常分支时,尽可能的少用if / else if嵌套方式,可以修改成:
if (condition) {
    //...
    return object;
}
// 继续处理 else / else if 业务逻辑代码

如果不得不使用超过三层的if / else if逻辑判断,可以将代码改成卫语句、策略设计模式、状态设计模式,下面是卫语句示例:

public void today() {
    if (isBuy()) {
        System.out.println("do something.");
        return;
    }
    if (isFree()) {
        System.out.println("do something.");
        return;
    }
    System.out.println("coding..");
}

在我们系统设计时,一般都会使用throw new XxxException();将return;代替,所有逻辑异常判断都采用自定义业务逻辑异常进行处理。

三、异常日志规范
异常规约
  1. Java 类库中定义的可以预判断来规避RuntimeException,不应该采用try {} catch(Exception e){}来处理。

错误示例:

// 直接使用不确定对象
object.setXxx(value);

正确示例:

// 判断非空后使用不确定对象
if (object != null) {
    //...
}
  1. 捕获异常目的是为了处理它,不要捕获了却什么都不处理而抛弃,如果不想处理它,请将该异常抛给它的调用者,最外层的业务使用者必须处理异常,将异常信息转换成用户可以理解的提示信息。
  2. 有try代码块放到了事务代码中,catch异常后,如果需要回滚事务,一定要注意rollback事务。
  3. finally代码块必须对资源对象、刘对象进行关闭操作,即使有异常也要做try-catch操作。
  4. 不能在finally代码块中使用return。
  5. 业务逻辑异常请交付给框架处理,我们将业务逻辑验证使用业务逻辑异常处理的机制进行抛给框架处理。

正确示例:

if (condition) {
    throw new LogicException(ErrorCodeEnum.USER_NOT_FOUND);
}
日志规约
  1. 代码中不可直接使用日志系统(Log4j、Logback)中的API,而依赖使用日志框架SLF4j中的API。使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。
    正确示例:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// 获取日志对象
private static final Logger logger = LoggerFactory.getLogger(Xxx.class);

日志对象定义一般都会在项目框架搭建初期定义,直接使用即可,如果需要自定义,则按照上面的方式进行声明日志对象。

  1. 对trace / debug / info级别的日志输出,必须使用占位符的方式,如果不使用占位符而是直接拼接,可能会导致变量为null导致系统异常,还一点日志等级不匹配时虽然不会打印,但是会执行字符串的拼接,浪费服务器系统资源。

正确示例:

logger.debug("执行查询用户:{},基本信息。",user.getId());
  1. 针对方法的主要参数需要打印对应的值,方便后期日志调试项目。

正确示例:

public void today(String userId) {
    logger.debug("查询用户:{},今日任务完成进度",userId);
}
  1. 方法内分支逻辑需要打印对应的日志信息,方便后期日志调试项目。

正确示例:

if (condition1) {
    logger.debug("do something.");
} else if (condition2) {
    logger.debug("do other thing.");
}
  1. 系统异常包括两大类:案发现场、异常堆栈信息.

正确示例:

logger.error(参数或对象.toString() + "_" + e.getMessage(), e);


作者:恒宇少年
链接:https://www.jianshu.com/p/58b3bfaaf637
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
国产上位机软件突围:适配统信UOS/麒麟OS的跨平台开发技术与实践(2026年信创实战指南) (航天科技集团CTO):“在信创战场上,1ms的延迟意味着1个卫星的控制失效。2026年,C#/.NET MAUI不是选择,而是我们守护卫星的‘生命线’。 阅读详情

相关推荐

如何玩转腾讯云轻量级服务器(新手向)

如何玩转腾讯云轻量级服务器(新手向) ​ 相信不少同学都想将自己的服务器部署到云服务器,让别人通过自己的域名就可以访问到自己的项目,而腾讯云轻量级服务器作为一个小型的应用,支持域名解析和可视化运维等。比较适合新手入门 ​ 本文服务器操作系统为Centos7 一. 购买以及基本配置 1.购买方式 ​ 本文主要面向新手,毕竟一般只有新手才会购买轻量级服务器。所以可以选择购买一年的来学习,以后再根据需要换,前提提示(轻量级服务器没有安全组的,开放端口直接开启防火墙里的即可) ​ 购买连接 购买完成后点击控制

qq_46160687的博客 1万+

homework2

一、findLast() public int findLast (int[] x, int y) {//Effects: If x==null throwNullPointerException// else return the index of the last element// in x that equals y.// If no such element exists, retur...

weixin_30260399的博客 278

Arduino Uno 实验15——MQ-135 气体传感器模块

MQ-135 气体传感器模块简介(空气质量检测 有害气体检测)   MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。MQ135气体传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害气体的监测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。   主要用途:家庭和环境的有害气体检测装置   主要芯片:LM393、MQ-135气体传感器 不同气体的型号选择

weixin_42645653的博客 2万+

DTO或Form中的属性命名时,属性名称的前两个字母必须小写

DTO或Form中的属性命名时,属性名称的前两个字母必须小写。今天在一个系统中发现了一个问题,在某DTO中有一个属性名称为 tClassType ,但是,当我在jsp页面中使用时,后台老是报No getter method for property tClassType of b

Eleven的专栏 2573

GD32F303实战:用定时器4触发ADC2+DMA,实现10ms精准采样1024点的完整流程

本文详细介绍了在GD32F303微控制器上使用Timer4触发ADC2配合DMA传输,实现10ms精准采样1024点的完整方案。从硬件架构设计、时钟树配置到定时器参数计算,提供了完整的工程实现流程和常见问题排查方法,适用于工业传感器监测等高实时性场景。

weixin_29194693的博客 433

机械臂学习:视觉引导——绪论

视觉引导 = 定位 + 引导定位:视觉系统定位到待引导的物体引导:视觉系统引导机械臂按需要的轨迹实现一定的工艺流程(过度点:人为指定机械臂的轨迹防止碰撞)(点云匹配:解决位姿估计姿态估计的问题)无序抓取的三个核心技术:3d识别(图中的点云匹配) 抓取方法路径规划(防止机械臂的碰撞,如自身碰撞等)如果只有同一高度的平移和旋转,其实并不需要点云,用单目就可以做,但是如果涉及到物体的倾斜以及高度的变换,那就是单目力所不能及,所以就是第三种情况:平移旋转加垫高。

2303_80018785的博客 4046

代码规范

1 命名规范 只能英文,禁止中文拼音,但是youku、alibaba可以 DO、VO、DTO、BO不需要驼峰 领域模型 表名 xxxDO 展示 xxxVO 业务 xxxBO 常量大写,_分割,不要嫌太长 抽象类必须用Abstract开头 包全部用小写,.分割符之间,只能有一个单词,不要用复数 com.changhong.util 使用设计模式的后面加模式类型 OrderFactory ...

ShuaiFanPi的博客 494

STM32的GPS数据提取程序设计说明——基于NMEA0183协议

一、硬软件平台 本次程序实现效果为对GPS信号穿送来的数据进行筛选,并将筛选后的信息通过上位机显示出来,所以此次设计所需硬件包括STM32F407、RS232转TTL、CH340USB转串口模块,注意该模块在使用前,对应的系统需要安装驱动,否则串口调试助手无法识别,另外还包括JLink下载器。 本次代码设计软件为KEIL5并结合F4固件包,上位机系统为WIN7,主机系统为WIN10。 二、算法总体思路设计 由于GPS通过RS232将数据传送给板子,因此使用两个串口资源(串口1和串口2),其中一个用来

小景的博客 6181

java命名风格(三)

学习内容: 【强制】 类名使用 UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外:DO / BO / DTO / VO / AO 正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion 反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion <hr style=" border:solid; width:100px; height:1px;" c

qq_43800904的博客 461

新手如何学习车载底层嵌入式软件开发(AutoSar)

汽车嵌入式开发

ACarSoft的博客 4221

深入解析 OpenClaw(小龙虾)源码:架构设计与核心实现

OpenClaw用清晰、工程化的代码结构,将复杂的Agent交互流程变成了可管理、可扩展的流水线。无论是想深入了解Agent系统设计,还是希望二次开发定制自己的AI助理,阅读OpenClaw源码都是一次绝佳的学习旅程。希望本文能帮助你快速掌握OpenClaw的核心脉络。如果你对某个模块(如技能开发、安全机制)感兴趣,欢迎继续探讨。本文基于OpenClaw社区版本源码分析,具体实现可能随版本迭代有所调整,请以最新源码为准。

Ven%的博客 449

浅谈Java编码规范,养成良好习惯!

编程最害怕的是出现 bug,满屏的报错让我们的大脑嗡嗡直响,不好的编码习惯也会让其他人无从下手,所以良好的编码习惯不仅可以让我们尽量少的出错,也可以让他人清明的看懂自己写的代码。本篇主要分为三个部分:基础的编码规范、后端编码注意事项、前端编码注意事项。 一、基础的编码规范 1.1命名风格 1.【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例: _name / __name / $name / name_ / name$ / name__ 我的理解:Oracle 官网建

ssssspc的博客 1015

【零基础入门unity游戏开发——2D篇】大大简化了地形创建流程,减少Rule Tile的使用 —— AutoTile自动平铺瓦片的使用介绍

Unity 2D游戏开发中的AutoTile技术详解 摘要:本文详细介绍了Unity 2D游戏开发中的AutoTile技术,这是一种智能瓦片系统,能够自动处理地形和场景拼接。文章首先讲解了AutoTile的基本概念和优势,然后分步骤指导读者如何安装2D Tilemap Extras包、创建AutoTile、设置参数和绘制遮罩。通过实际案例演示了AutoTile的使用方法,并比较了AutoTile与Rule Tile的适用场景。最后指出AutoTile虽然使用方便,但对素材要求较高,开发者应根据项目需求选择合

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 729

认识Java程序

又回到这里了,我是彭彭!HAKUNA MATATA!!! 课程导学 这一课为你介绍Java程序的构成,带你认识Java语言的部分核心语法,最后介绍Java语言的编码规范,养成一个良好的编码习惯,你会获益良多。 本课的学习目标,主要在于对知识概念的理解和记忆,需要手动编写的代码比较少,所以整体来看还是比较简单的。本课内容如下: 注释:如果代码能说话 关键字:Java语言的特殊语义 Java语言编码规范:良好起点的开端 本课的内容非常少,希望你能在半个小时内学完。 第一关 注释:如果代码能说话

m0_46308608的博客 267

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

程序员编程修养

                                                                                                            程序员编程修养      编程修养秘籍:         1.熟悉语言编码规范              1 Java编码规范(转载)                  http://

Corer的果子 2607

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JAVA代码静态检测之PMD

今天再次想启动Java代码静态检测工具的利用问题,主要再次尝试用了PMD,发现不少代码编码规范问题和好的代码建议,并学到不少自己之前没有注意到的Java方便的基础知识,感觉很不错,把相关明白的好的规则回忆总结下,再以后编码过程中要把随时利用代码静态检查工具,用好代码静态检查工具养成习惯。今天用到的PMD检查规则如下:If表达式必须使用{},无论有多少语句While循环必须使用{},无论有多少语句I...

weixin_34125592的博客 277

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java基础篇_03 编码规范

Java编码规范强制规范开发者规范类名、接口命名规则变量、方法命名规则常量命名规则注释空格缩进 对于这个编码的规范,我认为是一个很重要的部分,在任何编程语言都是。编码规范决定了你的代码是否优雅,优雅的代码看起来是令程序员赏心入目的,而乱七八糟的代码,呵呵,三个月后我自己写的代码都看不懂,整个项目的维护难度岂不是大大增加? 先举个例子,比如给你的变量、方法起个名字,你的变量全都是用a、b、c,用完一次接着用,然后你还不写注释,看着吧,下次查看代码你会恨死自己,所以你的变量方法的命名最好要见名知意,本文章的驼峰

凤文Sharing的博客 305

2.6 代码注释与编码规

本文介绍了Java中的代码注释方法和编码规范。Java提供三种注释:单行注释(//)、多行注释(/.../)和文档注释(/**...*/),其中文档注释可生成API文档。编码规范建议包括:每条语句单独占行并用英文分号结束;变量声明单独占行并初始化;合理使用空格;编写清晰易懂的代码;为关键方法添加注释。代码结构规范包括:package语句在首行、import语句在类上方、方法在类内、成员变量在类内方法外等。良好的注释和编码习惯能显著提高代码可读性和可维护性。

张丰麟的博客 838

如何让编码更加的标准

1.概述   在写这片博文时,我也是思绪良久,参考了不同语言的编码风格,最后总结出如何让自己的编码更加标准。 2.基础   以Java的基础为例子来说明: 文件编码格式为UTF-8 package需要置于最顶层 import包时,使用eclipse的快捷键(command+1)倒入对应的包(这样我们可以不用考虑包的顺序如何排列) 格式化代码采用eclipse的快捷键(comman...

weixin_30322405的博客 54

java plug in插件下载,eclipse_plug-in

前言java的编辑器市面上有很多,不过我对eclipse相对熟一点。每次配置eclipse都需要去找博客和重新配置一些插件,自我感觉有点麻烦,所以在这里将经常用的插件的安装,使用和配置文件记录下来以便以后可以快速进入开发节奏。这里重点关注的是编码规范和查找bug,至于JDK、TOMCAT、maven这些就不在赘述了。资源下载插件具体配置1、checkstyleCheckStyle是SourceFo...

weixin_35595485的博客 508

JAVA新手注意事项

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

can的博客 259

写项目应该遵循的代码规范

写项目应该遵循的代码规范前言下面简单总结一下最常用到的规范,完整的可以参考:阿里巴巴的java开发手册 前言 优美的代码,让人看起来非常舒服。丰富的文档,让人维护起来非常方便 早日养成开发代码的规范是非常重要的,而不是等着项目越来越大,代码越来越乱,才开始后悔:哦~~,早知道 这样,我就应该一开始就变量命名规范点;文档齐全点;日志更加准确点;应该把经常变动的配置放到配置文件而不是 代码中;文档应该及时随着代码更改而修改而不是一拖再拖;不使用任何魔法值(未声明直接生成的变量,不利于维护 与他人阅读)。不统

weixin_43441262的博客 604
上一篇: idea 取消import* 和 类的注解生成设置
下一篇: jira安装破解和汉化
liuyinfei_java
博客等级 码龄9年 70粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值