命名

类名使用UpperCamelCase风格。 领域模型相关命名:DO / DTO / VO / DAO等。

方法名,参数名,成员变量,局部变量都统一使用lowerCamelCase风格。

常量名全部大小写,单词间用下划线隔开,不要嫌名字长。

抽象类使用Abstract或Base开头。

异常类命名使用Exception结尾。

测试类命名以它要测试的类的名开始,以Test结尾。

记住,中括号是数组类型的一部分,String[] args,请勿使用String args[]。

POJO类中任何布尔类型的变量,都不要加is,否则部分框架会引起序列化错误。

枚举类名建议带上Enum后缀,枚举成员名称需要全部大写,单词间用下划线隔开。

Service / DAO层命名规约

获取单个对象用get做前缀。

获取多个对象用list做前缀。

获取统计值的方法用count做前缀。

插入方法用save。

删除方法用remove。

修改方法用update。

格式规约

左打括号前不换行。

左大括号后换行。

右大括号前换行。

有大括号后还有else等代码则不换行;表示终止右大括号必须换行。

集合处理

使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的类型完全一样的数组,大小是list.size()。

使用工具类Array.asList()把数组转换成集合。

不要在foreach循环里进行元素的remove/add操作。remove元素使用Iterator方式,如果并发操作,需要对Iterator对象加锁。

Iteator it = a.iterator(); while(it.hasNext()){ String temp = it.next(); if(条件){ it.remove(); } }

集合初始化,尽量指定集合初始化大小。

使用entrySet遍历Map集合KV,而不是keySet方式遍历(keySet方式是遍历了2次,一次转换为Iterator对象,另一次是从hashMap中取出key对应的value,JDK8,使用Map.foreach方法)。

线程池

线程池不允许使用Executors创建,而是通过ThreadPoolExecutor方式,这样处理方式让写的同学明确线程池运行规则,尽量避免风险。

使用CountDownLatch进行异步转同步操作,每个线程退出前必须调用countDown方法,线程执行cache异常,确保countDown方法额可以执行。

避免Random实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一个seed导致性能下降。

循环体中的语句要考量性能,以下操作尽量移至循环体外处理,如定义对象,变量,获取数据库连接,进行不必要的try-catch操作。

java大魔王,Java编码规范 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. mysql中间件面试题_面试题集锦-中间件 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...

    Mysql引擎区别,聚簇索引是数据,非聚簇索引是引用,普通索引和主键索引两棵树,普通索引到主键索引有个回表,建立覆盖索引减少回表,利用前缀索引,注意索引顺序,隔离级别默认rr,事务依赖于mvcc,B+ ...

  2. java实现gdal栅格矢量化_gdal栅格矢量化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...

    #include "gdal_alg.h" 栅格矢量化功能用于将栅格数据生成矢量数据,通常用于分类图像.GDAL库中使用函数GDALPolygonize()或者函数GDALFPol ...

  3. JAVA刷CSDN访问量_刷csdn访问量 - 鹏城二少的个人空间 - OSCHINA - 中文开源技术交流社区...

    通过HttpURLConnection访问.只需改一下博客地址就行了,然后后台通过Jsoup解析博客的博客地址,然后通过多线程刷博客访问量(线程数量可根据自己电脑配置进行适当的修改 1.ListLin ...

  4. java进程老挂掉_JAVA进程突然挂掉 - 1024菜bird的个人空间 - OSCHINA - 中文开源技术交流社区...

    JVM内存不足导致进程死掉. Native memory allocation (mmap) failed to map 一台服务器上部署很多JAVA进程已经是微服务的常态,但也有些坑. 背景,测试服 ...

  5. java报数编码,报数选队长代码 - 奇鸢iceDomain的个人空间 - OSCHINA - 中文开源技术交流社区...

    需求 同学们相约一起游玩,大家准备推举一个人作为临时队长.为了体现合理公平,大家提出了一个规则.所有人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出,剩下的人继续 ...

  6. java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...

    Java代码的回调函数经常由框架或是系统定义,由程序开发人员填充. 它的最主要特点是即定义了调用的规范同时又非常的灵活. 回调函数有些类似于观察者模式,它们的区别在于:观察者模式返回的参数为Event ...

  7. java亲密数的解题思路,算法解题思路总结 - jjhgx的个人空间 - OSCHINA - 中文开源技术交流社区...

    算法解题思路: 细读算法要求 找到极限情况 找到临界情况,结果依赖 找到最终的结束求解点 编程实现:考虑算法的空间复杂度和时间复杂度 案例说明: 假设: 输入字符串为:s, 长度为:slen, s的第 ...

  8. java 树的层次遍历_Java遍历树的层级 - osc_jegm3yg5的个人空间 - OSCHINA - 中文开源技术交流社区...

    非科班出身,欢迎指正. 要实现的逻辑是,在一棵树中,给出任意一个节点,获取到该节点下的N个层级. 一.树型结构 下图的树中,节点上的字母代表节点的名字,字母下的代表该节点的下单金额. 二.数据准备 组 ...

  9. java构造函数重载继承_Java基础-继承 - 写代码换盆的个人空间 - OSCHINA - 中文开源技术交流社区...

    访问权限 Java 中有三个访问权限修饰符:private.protected 以及 public,如果不加访问修饰符,表示包级可见. 可以对类或类中的成员(字段和方法)加上访问修饰符. 类可见表示其 ...

最新文章

  1. SimpleHTTPServer中出错信息:SocketServer doesn't handle client disconnects properly
  2. 046_byte的值在计算机中的表示
  3. python判断字符串是纯数字_python判断字符串是否纯数字的方法
  4. 如何在64位WIN7下安装64位的解压版mysql-5.6.37-winx64.zip
  5. python好用的模块_python常用的内置模块和常用的第三方模块
  6. python数据结构之列表(list)——超详细
  7. 出现梯度消失与梯度爆炸的原因以及解决方案
  8. Hadoop原理深度剖析系列1——Hadoop的基本知识
  9. 计算机三级数据库2020年试题,2015年计算机三级数据库试题及答案
  10. java sqlldr_sqlldr使用(转)
  11. java同期_Java日期处理-本期,同期,上期
  12. 动态规划之《高楼扔鸡蛋》问题详解 LeetCode 887.鸡蛋掉落
  13. 分库分表之MyCat应用
  14. 设备 naa.6006016004102900751132ac8de3e211 性能降低。
  15. 多线程_12_优先级
  16. UE4 材质学习 (02-利用UV来调整纹理)
  17. APP性能测试--功耗测试
  18. Struts原理与实践
  19. 领奖啦!第二期博客征文《从HelloWorld启航——说说那些年我们一起写过的代码》获奖名单揭晓
  20. Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习

热门文章

  1. 我的LeetCode刷题初体验
  2. Python 过滤敏感词之字符串操作(练习)
  3. 18个优秀的在线图片编辑服务网站 | 可能吧
  4. 苹果home键失灵_Home键不能用?自行排查不行再送修!
  5. Python 网络编程学习笔记(二)——DNS 域名解析客户端程序设计
  6. 网上怎么打印带印章的文件
  7. jsp php哪个好学,PHP和jsp哪个好学呢?
  8. 《信息技术时代》期刊简介及投稿要求
  9. UITableViewCell 图片自适应
  10. cpu外频 内存频率