【Java】阿里巴巴java开发手册总结(我能看懂的)
尽管这本《手册》句句是精华,但由于我还是个菜鸟,这里仅作(我能用的到的&&我能看懂的)的笔记
1.1命名风格
1、类名用UpperCamelCase的风格
2、方法名、参数名、成员变量、局部变量都统一用lowerCameCase的风格,必须遵循驼峰形式。
补充:
驼峰形式:
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。
3、类型与中括号间无空格连接定义数组
如
int[] arrayDemo
4、避免在子父类成员变量之间或者不同代码块的局部变量间采用完全相同的命名方式,使可读性降低。
5、杜绝完全不规范的缩写,避免词不达意。
6、为了达到代码自解释的目的,任何自定义编程元素在命名时,使用尽量完整的单词组合来表达其意。
7、各层的命名规约
Service/DAO层方法命名规约如下
获取单个对象的方法用get作为前缀。
获取多个对象的方法用list作为前缀。
获取统计值的方法用count作为前缀
插入方法用sava/insert作为前缀
删除方法用remove/delata作为前缀
修改方法用update作为前缀
1.2常量定义
1、long或Long初始赋值时,数值后用L而不是l,因为1和l易搞混
2、不要使用一个常量类维护所有的常量,要按常量功能进行归类,分开维护。
缓存相关常量放在类CaseConsts下;系统配置相关常量放在类ConfigCoonsts下。
1.3代码格式
1、大括号使用规定 。如果{}内为空,则简洁的写成{}即可,大括号内既无换行也无空格。若是非空代码块则:
1)左大括号前不换行
2)左大括号后换行
3)右大括号前换行
4)右大括号后若有else等则不换行;表示终止的右大括号后必须换行。
2、左小括号和字符间不出现空格
3、if/for/while/switch/do等保留字与括号间必须加空格。
4、任何一个二目、三目的运算符的左右两边都要加一个空格
说明:
运算符包括赋值运算符、逻辑运算符、加减乘除符号等。
5、采用4个空格缩进,禁止使用Tab控制符。
6、注释的双斜线与注释内容之间有且只有一个空格,单行字符数不超过120个,超出则需换行,换行时遵循以下规则。
1)第二行相对于第一行缩进四个空格,从第三行起不再换行
2)运算符与下文一起换行
3)方法调用的点符号与下文一起换行。
4)方法调用多个参数需要换行时,在逗号后进行
5)在括号前不要换行
7、方法参数定义和传入时,多个参数逗号后必须加空格。
8、没有必要增加若干空格来使某一行的字符与上一行的对应的位置的字符对齐。
1.4OOP规约
1、直接用类名调用静态方法和静态变量,避免使用对象。
2、相同的参数类型,相同的业务含义才可以使用可变参数,避免使用Object.可变参数必须在参数列表的最后。
1.7控制语句
1、在一个switch块里,都必须包含一个default语句放在最后,即使它什么代码也没有。
2、 在if/else/for/while/do语句中,必须使用大括号,即使只有一行代码。
3、在高并发场景中,避免使用“等于”判断作为中断或退出条件,应用大于或小于的区间判断条件来代替。
4、尽量少使用if else的方式,可用以下方法代替
if (condition){
…
return obj;
}
5、不要在条件判断中执行其它复杂的语句,可将复杂的逻辑判断的结果赋值给一个有意义的布尔类型变量名,以提高可读性。
6、避免采用反逻辑运算符。
说明:
取反逻辑不利于快速理解,并且取反逻辑写法必然存在对应的正向逻辑写法
1.8注释规约
1、类、类属性、类方法的注释必须使用Javadoc的规范,必须使用/*内容/的方式,不得使用//xx方式。
2、方法内部的单行注释,在注释语句的上方另起一行,使用//注释。方法内部多行注释,使用/* */注释,注意与代码对齐。
3、与其用半吊子的英语来注释,倒不如用中文把问题说清楚,专有名词保持英文即可。
相关文章:

关于maya与max互导FBX出现错误的解决方案。
因为自己实在是不愿意一次又一次把时间浪费在导入导出的问题上。每一次都是多试几次才成功,也没有真正去测试这个东西。但是今天实在是碰到了错误中的极品了。最后还是决定写下来。。算是给自己做笔记吧。。大家如果在导入导出的时候遇到一些问题不妨试试以下几种方…

AS3.0中的显示编程(六)-- 几何结构
几何结构,主要是完成Flash编程中,一些和几何相关的内容。如显示对象的变形角度、公式计算等。可能很多人和我一样,高中学的几何知识,差不多都已经还给老师了。不过也不用太担心,因为一般情况下,我们也用不到…

Win10命令行激活 电脑组装
系统激活: 1. 管理员身份运行 cmd 2. slmgr.vbs /upk //卸载产品密匙 3. slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX //安装 4. slmgr /skms zh.us.to …

【java】兴唐第十五节课
知识点: 1、定义包名不能以java.为开头。 2、获取系统时间的方法: 注意: (1) 引入Date类时,引入的是java.util.Date 而不是java.sql.Date(后者是前者的子类)。 代码实现 Date date new Date(); System.o…

SQL Server 日期和时间相关的数据类型有两种
SQL Server 日期和时间相关的数据类型有两种:DateTime和SmallDateTime。 DateTime:需要8个字节,前4个字节用1900年1月1日以后的天数表示日期,后4个字节表示一天中的时间。支持的日期范围:1/1/1753 12:00:00 AM到12/31/9999 11:59…

序列化pickle
import pickle d { name:alex, role:police, blood: 76, weapon:AK47 } d_dump pickle.dumps(d) #序列化 print (pickle.loads(d_dump)) #反序列化 f open(game.pkl, wb) pickle.dump(d, f) #First in first out (FIFO) pickle.dump(alive_players, f) dump 写入文件 du…

T-SQL笔记3:事务、锁定和并发
T-SQL笔记3:事务、锁定和并发 本章摘要 1:事务 1.1:显式事务 1.2:使用DBCC OPENTRAN显示最早的活动事务 2:锁定 2.1:查看锁的活动 3:并发影响及隔离级别 3.1:并发影响 3.2࿱…

几种常用数据库比较
目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES…

成功将BlogEngine 1.5 升级到了BlogEngine 2.0
使用BlogEngine.Net博客系统有两年时间了。官方的最新版本已经出到了2.5。但它是基于.net4.0的。也就是说服务器必须安装.net4.0,运行环境必须选择4.0。出于移植性的考虑。我决定将我的博客升级到2.0。BlogEngine.Net2.0是继续.net2.0的。虽说必须安装.net 3.5&…

【java】4.27上课及做作业时遇到的问题及第十六节课笔记整理
注意: 部分知识点只在eclipse运行环境中适用 1、字符串转化为字符数组的方法: 代码实现: char[] strcs text.toCharArray();2、字符数字转化为字符串 String reStr new String(re,0 ,position);3、打包及 引包的方法 (1) 用ex…

【Android】基于A星寻路算法的简单迷宫应用
简介 基于【漫画算法-小灰的算法之旅】上的A星寻路算法,开发的一个Demo。目前实现后退、重新载入、路径提示、地图刷新等功能。没有做太多的性能优化,算是深化对A星寻路算法的理解。 界面预览: 初始化: 寻路: 后退: 提示: 完成: 刷新地图: 下载地址: 项目…

[转]SQL 约束讲解
约束主要包括: •NOT NULL •UNIQUE •PRIMARY KEY •FOREIGN KEY •CHECK •DEFAULT 1、not null :用于控制字段的内容一定不能为空(NULL)。 用法 :Create table MyTable ( id …

JSON 转 VO
需求 将获取的json数据直接转为vo 解决 利用net.sf.json.JSONObject的toBean() 确保json中的key值和vo中的字段名称一致 JSONObject jsonObject new JSONObject();UserVO vo new UserVO(); vo (UserVO) net.sf.json.JSONObject.toBean(jsonObject, UserVO.class);参考文档地…

怎样查看一个端口有无开启
有时候我们需要确定一下某个端口有无开启,有两种方法。 方法 1:查看一个端口有无开启的最简单方法 查看端口有无开启,需要在dos里使用命令来完成。这个命令就是: netstat -ano这个命令能显示当前电脑有哪些端口正在使用࿰…

一道SQL统计试题
根据上图A表和B表,按照年份和地区生成1至12个月的数据,结果如下: 方法一: select YEAR,AreaName, MAX(case Month when 1 then Money else 0 end) as [1月], MAX(case Month when 2 then Money else 0 end) as [2月], MAX(case Mo…

【单片机】时钟周期 器械周期 指令周期的关系
1、 时钟周期(振荡周期):始终周期也称振荡周期,定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的单位。在一个始终周期内,CPU仅完成一个最基本的动作。时钟周期是一个时间的量。始终周期表示了SDRAM…

Painting A Board --POJ 1691
1、题目类型:暴力法、DFS。 2、解题思路:题意,一块大的矩形区域的被分成多个矩形区域,现在要给不同的区域涂上不同的颜色,有不同颜色的刷子可以提供,每个刷子可以刷一种不同的颜色。每刷一次,将…

《JavaScript高级程序设计》读书笔记【一】
JavaScript介绍 ECMAScript,由ECMA-262定义,提供核心语言功能; 文档对象模型(DOM),提供访问和操作网页内容的方法和接口; 浏览器对象模型(BOM),提供与浏…

上不了名校?可以在 GitHub 上读他们的课程
今天开始,全国各大区域的高考成绩陆续公布,又到了几家欢喜几家愁的时刻,如果你准备报考计算机相关专业,但是又由于分数不高而苦恼。别担心,在 GitHub 上有着大量的名校教学资源,即使上不了名校,…

【java】各种方法的使用(不定期更新)
疑难杂症篇 1、输入一个字符的方法 问题在于Scanner中没有一个类似于nextInt()之类的函数。 代码实现 char num scanner.next().charAt(0);2、将字符串转化为数字 没啥问题就是记不下来 代码实现: int a1 Integer.parseInt(i1);3、字符串转化为字符数组的方法 …

SQL SERVER 触发器示例
触发器是一种特殊的存储过程。 触发器语法 : CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ DELETE ] [ UPDATE ] } [ WITH APPEND ] [ NOT FOR REPLICATION ] AS sql_statement [ ...n ] 示…

vc数据库知识
在连接SQL数据库时,数据库的链接: _bstr_t strConn"ProviderSQLOLEDB.1;Data Source.;Initial Catalogdb_test;Integrated SecuritySSPI;Persist Security InfoFalse"; _ConnectionPtr m_pConnection; m_pConnection.CreateInstance(__uuidof(connection)…

jmeter 测试 api 接口方法
双击 “jmeter.bat” 打开 Jmeter 页面,如下图所示。 右击“测试计划”,添加 -> Theaders(Users) -> 线程组 在线程组中可以设置线程数、并发数、循环数等。 下面开始进行几种 jmeter 的接口测试方法。 1、get 请求配置 右击…

我要学ASP.NET MVC 3.0(一): MVC 3.0 的新特性
摘要 MVC经过其1.0和2.0版本的发展,现在已经到了3.0的领军时代,随着技术的不断改进,MVC也越来越成熟。使开发也变得简洁人性化艺术化。 园子里有很多大鸟都对MVC了如指掌,面对问题犹同孙悟空的七十二变一般游刃有余,令…

【java】兴唐第12-14节笔记整理
第十四节课 1、eclipse快捷键 alt shift s给所有属性写get set函数 2、给文件重命名: ctrl F2 3、上转型对象调用方法调用的是子类重写的方法 4、在任何情况下,子类对象都可以访问父类受保护方法(protected) 注意: …
[ZZ]Map/Reduce hadoop 细节
转自:Venus神庙原文:http://www.cnblogs.com/duguguiyu/archive/2009/02/28/1400278.html 分布式计算(Map/Reduce) 分布式计算,同样是一个宽泛的概念,在这里,它狭义的指代,按Google …

类加载器双亲委派模式
双亲委派模型的工作流程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中…

Kubernetes 架构(下)【转】
上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点。 Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络(例如 flannel&#…

【工具软件】Xmind的使用
1、打开历史保存的记录的方法 窗口 - 文本编辑历史 - 恢复 2、批量修改 编辑 - 查找/替换 3、如果子主体很多,而且有文本格式的,可以直接选中父父主题复制粘贴 4、窗口 - 黑匣子 自己做的脑图系统会自动备份。 5、常用快捷键 (1)创建子主…

小脚本,统计一个目录下满足特定条件文件的代码行数
find -regex .*cc -o -regex .*h | xargs wc -lfind也自带了执行命令的方法:find -regex .*cc -o -regex .*h -exec wc -l {} \; 这种方法的结果不太对,只能统计到满足 -regex .*h 的文件注明一下: find默认从当前目录递归的查找;…