java大魔王,Java编码规范 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...
命名
类名使用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 - 中文开源技术交流社区...相关推荐
- mysql中间件面试题_面试题集锦-中间件 - 春哥大魔王的博客的个人空间 - OSCHINA - 中文开源技术交流社区...
Mysql引擎区别,聚簇索引是数据,非聚簇索引是引用,普通索引和主键索引两棵树,普通索引到主键索引有个回表,建立覆盖索引减少回表,利用前缀索引,注意索引顺序,隔离级别默认rr,事务依赖于mvcc,B+ ...
- java实现gdal栅格矢量化_gdal栅格矢量化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...
#include "gdal_alg.h" 栅格矢量化功能用于将栅格数据生成矢量数据,通常用于分类图像.GDAL库中使用函数GDALPolygonize()或者函数GDALFPol ...
- JAVA刷CSDN访问量_刷csdn访问量 - 鹏城二少的个人空间 - OSCHINA - 中文开源技术交流社区...
通过HttpURLConnection访问.只需改一下博客地址就行了,然后后台通过Jsoup解析博客的博客地址,然后通过多线程刷博客访问量(线程数量可根据自己电脑配置进行适当的修改 1.ListLin ...
- java进程老挂掉_JAVA进程突然挂掉 - 1024菜bird的个人空间 - OSCHINA - 中文开源技术交流社区...
JVM内存不足导致进程死掉. Native memory allocation (mmap) failed to map 一台服务器上部署很多JAVA进程已经是微服务的常态,但也有些坑. 背景,测试服 ...
- java报数编码,报数选队长代码 - 奇鸢iceDomain的个人空间 - OSCHINA - 中文开源技术交流社区...
需求 同学们相约一起游玩,大家准备推举一个人作为临时队长.为了体现合理公平,大家提出了一个规则.所有人围成一圈,顺序排号.从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出,剩下的人继续 ...
- java有没有回调函数_Java中的回调函数 - wangjianme的个人空间 - OSCHINA - 中文开源技术交流社区...
Java代码的回调函数经常由框架或是系统定义,由程序开发人员填充. 它的最主要特点是即定义了调用的规范同时又非常的灵活. 回调函数有些类似于观察者模式,它们的区别在于:观察者模式返回的参数为Event ...
- java亲密数的解题思路,算法解题思路总结 - jjhgx的个人空间 - OSCHINA - 中文开源技术交流社区...
算法解题思路: 细读算法要求 找到极限情况 找到临界情况,结果依赖 找到最终的结束求解点 编程实现:考虑算法的空间复杂度和时间复杂度 案例说明: 假设: 输入字符串为:s, 长度为:slen, s的第 ...
- java 树的层次遍历_Java遍历树的层级 - osc_jegm3yg5的个人空间 - OSCHINA - 中文开源技术交流社区...
非科班出身,欢迎指正. 要实现的逻辑是,在一棵树中,给出任意一个节点,获取到该节点下的N个层级. 一.树型结构 下图的树中,节点上的字母代表节点的名字,字母下的代表该节点的下单金额. 二.数据准备 组 ...
- java构造函数重载继承_Java基础-继承 - 写代码换盆的个人空间 - OSCHINA - 中文开源技术交流社区...
访问权限 Java 中有三个访问权限修饰符:private.protected 以及 public,如果不加访问修饰符,表示包级可见. 可以对类或类中的成员(字段和方法)加上访问修饰符. 类可见表示其 ...
最新文章
- SimpleHTTPServer中出错信息:SocketServer doesn't handle client disconnects properly
- 046_byte的值在计算机中的表示
- python判断字符串是纯数字_python判断字符串是否纯数字的方法
- 如何在64位WIN7下安装64位的解压版mysql-5.6.37-winx64.zip
- python好用的模块_python常用的内置模块和常用的第三方模块
- python数据结构之列表(list)——超详细
- 出现梯度消失与梯度爆炸的原因以及解决方案
- Hadoop原理深度剖析系列1——Hadoop的基本知识
- 计算机三级数据库2020年试题,2015年计算机三级数据库试题及答案
- java sqlldr_sqlldr使用(转)
- java同期_Java日期处理-本期,同期,上期
- 动态规划之《高楼扔鸡蛋》问题详解 LeetCode 887.鸡蛋掉落
- 分库分表之MyCat应用
- 设备 naa.6006016004102900751132ac8de3e211 性能降低。
- 多线程_12_优先级
- UE4 材质学习 (02-利用UV来调整纹理)
- APP性能测试--功耗测试
- Struts原理与实践
- 领奖啦!第二期博客征文《从HelloWorld启航——说说那些年我们一起写过的代码》获奖名单揭晓
- Xamarin是无懈可击还是鸡肋?浅谈对Xamarin的学习