1.对于类和类内部的方法命名要采用驼峰命名法,一般来讲cpp和python的小伙伴可能更喜欢下划线,但是java大部分都是以驼峰来命名的,除此之外类的驼峰以大写字母开始,方法,变量的驼峰以小写字母开始

2.抽象类名一般使用Abstract或者Base结尾,异常则使用Exception结尾,测试类一般用Test结尾
3.POJO类的前边不能加is,否则会引起一些特殊的错误,关于这个我觉得主要的一个例子是Boolean isDeleted 和Boolean deleted,他们的方法都是isDeleted(),这样的化RPC框架在解析的时候会误以为前者也是名为deleted,就会导致获取不到该属性产生错误
4.
5.如果设计中采用了设计模式,需要在类名中表现出设计模式,比如如果采用了工厂模式则在结尾加Factory,如果采用了责任链则在结尾加上Chain(吐槽下之前看http源码的时候不会责任链结果卡了好久,个人的感觉看底层源码实现是次要的,对我这个小白来讲可能更多的是学一些编码的技巧之类的东西吧。)
6.类的前面最好使用/**加回车的方式加上类的信息
7.下面这个知道就可以了,便于看别人的代码

8.Service和DAO层的方法命名一般以get,list,count,remove,save,update作为前缀用来让人一眼看出方法的类型,除此之外
DO,DTO,VO一般表示数据对象,数据传输对象,网页名称

9.关于常量的定义,一般主要分为五类,跨应用共享常量,应用内共享常量,子工程内共享常量,包内共享常量,类内共享常量
1)跨应用共享:一般放在二方库中,通常是client.jar的constant目录下。
2)应用内共享一般放在一方库中,通常是子模块中的constant目录下。
3)子工程内部共享变量,放在当前工程的constant下
4)包内共享常量一般放在报下的单独constant下
5)类内一般private static final

10 if/for/while/switch/do等保留字与括号之间必须加空格
11 强制使用四个空格缩进,进制使用tab,如果一定要使用tab缩进必须设置一个tab为四个空格,要用IDEA设置insert spaces for tabs
12。单行字符长度不能超过120个
需要换行的规则:
1)第二行相对第一行缩进四个空格
2)运算符与下文一起换行
3)方法调用的点符号与下文一起换行
4)方法调用中的多个参数需要换行时,在逗号后进行
13多个方法在逗号后面加空格

14IDE 的 text file encoding 设置为 UTF-8; IDE 中文件的换行符使用 Unix 格式,不
要使用 Windows 格式。
15.避免通过一个类的对象引用访问此类的静态变量或者方法,直接用类名来访问即可
16.所有的覆写方法,必须加@Override 注解。
17.浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用
equals 来判断。
说明:浮点数采用“尾数+阶码”的编码方式,类似于科学计数法的“有效数字+指数”的表示方式。二进制无法精确表示大部分的十进制小数

18…为了防止精度损失,禁止使用构造方法 BigDecimal(double)的方式把 double 值转
化为 BigDecimal 对象。
说明:BigDecimal(double)存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。
如:BigDecimal g = new BigDecimal(0.1f); 实际的存储值为:0.10000000149
正例:优先推荐入参为 String 的构造方法,或使用 BigDecimal 的 valueOf 方法,此方法内部其实执行了
Double 的 toString,而 Double 的 toString 按 double 的实际能表达的精度对尾数进行了截断。
BigDecimal recommend1 = new BigDecimal(“0.1”);
BigDecimal recommend2 = BigDecimal.valueOf(0.1);
20.POJO 类必须写 toString 方法。使用 IDE 中的工具:source> generate toString
时,如果继承了另一个 POJO 类,注意在前面加一下 super.toString。


22.

23.一定要注意Map里面K/V能不能存储null值的情况,如下表格

24hashmap并不能保证插入的顺序,但是一旦插入完成之后进行遍历,他的遍历顺序总是相同的

25并发时注意单例模式的线程安全问题
26线程资源必须通过线程池提供并不允许在应用中自行 显示创建线程
27线程池不使用Executors而使用ThreadPoolExecutor的方式可以避免资源耗尽的风险
28
高并发的时候同步调用时应该考量锁的性能损耗,能用无锁数据结构就不要用锁,能锁区块就不要锁整个方法,能锁对象就不要锁类
29 hashmap在容量不够时回resize,高并发是可能会出现死链,导致cpu飙升,开发中可以使用其他数据机构或者加锁来规避风险
30.在一个 switch 块内,每个 case 要么通过 break/return 等来终止,要么注释说明程
序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个 default 语句并且
放在最后,即使它什么代码也没有。

31.使用正则表达式时,利用好预编译功能,可以有效加快正则匹配速度
不要在方法体内定义:Pattern pattern = Pattern.compile(规则);

32
后台输送给页面的变量必须加!var——中间的感叹号。说明:如果var=null或者不存在,那么!{var}——中间的感叹号。 说明:如果 var=null 或者不存在,那么!var——中间的感叹号。说明:如果var=null或者不存在,那么{var}会直接显示在页面上。

注意 Math.random() 这个方法返回是 double 类型,注意取值的范围 0≤x<1(能够
取到零值,注意除零异常),如果想获取整数类型的随机数,不要将 x 放大 10 的若干倍然后
取整,直接使用 Random 对象的 nextInt 或者 nextLong 方法。

34.不能在 finally 块中使用 return,finally 块中的 return 返回后方法结束执行,不/会再执行 try 块中的 return 语句。

关于阿里巴巴编程规范相关推荐

  1. Apsara Clouder基础技能认证-阿里巴巴编程规范考试流程

    1.阿里Java开发规范考试网站为:阿里巴巴编码规范-阿里云全球培训中心 2.网址打开后页面为下图,点击"立即考试(图一)"-"进入考试(图二)" (图一) ( ...

  2. Apsara Clouder基础技能认证-阿里巴巴编程规范考试真题

    作为从事IT行业的编程开发者,我们必须要遵守IT行业编程开发的规范,俗话说:"无规则不成方圆",大家都会约定俗成的遵守.下面是我的总结在考试中所遇到的题型,字体背景标记为黄色就是答 ...

  3. 阿里巴巴编程规范(new)

     一.编程规约 (一) 命名规约 1.[强制]所有编程相关命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.反例: _name / __name / $Object / name_ /  ...

  4. 编程规范及程序员的自我修养

    本文重点解决如下问题:什么样的代码是好的代码,什么样的程序员是优秀的程序员? 先看图 4 3(a)中的代码,你能明白这段代码要做什么事情吗?再看图 4 3(b)中的代码,你可以知道这段代码在做什么吗? ...

  5. 阿里巴巴Java开发规范线程池_阿里巴巴java编程规范.pdf

    阿里巴巴java编程规范 目录 一.编程规约1 (一) 命名规约1 (二) 常量定义3 (三) 格式规约4 (四) OOP 规约6 (五) 集合处理 10 (六) 并发处理 12 (七) 控制语句 1 ...

  6. 编程规范(阿里巴巴)

    一.编程规范: 1.变量不可以使用下划线与美元符号开头,也不能使用下划线与美元符号结尾. 2.代码中英混合,也不可纯拼音,变量需要为名词或形容词,方法必须为动词,常量必须全部大写多个单词使用下划线分割 ...

  7. 《阿里巴巴编码规范(JAVA)》学习认证考后感

    image.png <阿里巴巴 Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断完善,系统化地整理成册,回馈给广大开发者. 本手册的 ...

  8. [转]阿里编程规范(精简版)

    文章目录 1.简介 2.命名: 3.格式规约 4.注释规约 5.OOP规约 6.集合处理 7.控制语句 8.异常 9.日志 10.单元测试 11.工程规约 1.简介 统一规范标准将有助于提高行业编码规 ...

  9. 阿里巴巴编码规范技能认证考试心得与试题

    前言 现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量. 无规矩不成方圆,无规范难以协同,站在巨人的肩膀上,借鉴行业优秀经验总结 ...

  10. 阿里巴巴编码规范 java认证记录

    记录一下个人的考试题目,答案没有全对,提供题目给大家参考交流,如有发现错误,留言我改正即可,谢谢! 我始终相信互相学习才是进步的捷径! 阿里巴巴开发规范1.4版点击下载 单选1.KV结构的集合,在处理 ...

最新文章

  1. 认清自己,愉快度过每一天
  2. seaborn使用violinplot函数可视化小提琴图、使用swarmplot函数添加抖动数据点(jittered points)显示数据的稠密程度
  3. IBM推出127量子比特处理器,超越谷歌和中科大
  4. [原]unity3d ios平台内存优化(一)
  5. 中国网络出版产业盈利模式与投资前景形势研究报告2022版
  6. CTF入门--请输入密码
  7. war包部署-打包测试
  8. delphi 窗体的释放
  9. 哈尔滨阳光计算机学院是不是黄了,黑龙江这4所野鸡大学,常被误认为是名校,实则害人不浅...
  10. 一场关于Google不作恶信条的辩论会
  11. linux下drcom无法上网,drcom为什么还是不能上网啊!
  12. 互联网日报 | 5月29日 星期六 | 京东物流正式登陆港交所;美团年度交易用户数5.7亿创新高;高途课堂回应裁员30%传闻...
  13. hadoop最新稳定版本dkhadoop版本选择介绍
  14. telnet IP不通/sybase central工具无法连接到数据库
  15. Caffe环境搭建指北
  16. oracle数据的启动
  17. C++使用major做变量名的问题
  18. oracle dba 培训教程 第11章 索引的管理与维护
  19. 如何制作Android.9图片
  20. HTTP代理IP的三种使用方法

热门文章

  1. 基于springboot的人才求职招聘平台设计与实现
  2. 基于myscript.js的web手写板(支持中文识别)
  3. 第二篇:Spring Cloud Eureka 服务注册+发现
  4. 常见笔顺错误的字_有哪些常见笔顺错误?
  5. 打造敏捷的自组织团队
  6. 两个同级路由如何相互访问
  7. cm-14.1 Android系统启动过程分析(二)-Zygote进程启动过程
  8. 阿里云企业邮箱标准版/集团版/尊享版区别对比
  9. MSDOS设置代码页
  10. 数仓建模—表设计规范