Java编码规范
一、命名规范
1. 类名和接口单词的首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName 、ThisIsMethodOrFieldName。
2. 标识符的命名要求达意,达意是指标识符能准确的表达出它所代表的意义,并在达意的基础上尽量简洁,例如:如:theOrderNameOfTheTargetSupplierWhichIsTransfered 太长, transferedTargetSupplierOrderName则较好,但是transTgtSplOrdNm就不好了。省略元音的缩写方式不要使用,最好不要用到单词缩写。
3. 包的命名要全用小写字母,而且单词之间不要用字符分开,如pers.xxx.firsttest
,不
要
pers.xxx.first_Test.
。
4. 方法命名时首字母小写,如 addOrder() 不要 AddOrder();注意动词在前,如 addOrder(),不要orderAdd(),一般动词前缀会有特殊意义,例如create(创建),add(添加),delete(删除)等。
6. 静态常量、枚举变量命名是全部大写,用下划线分割。
二、代码规范
1.在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止,在每一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。
2. 代码缩进使用Tab键;
3. 程序块的分界符左大括号"{" 和右大括号"}"都另起一行,应各独占一行并且位于同一列,同时与引用它们的语句左对齐;对齐只使用TAB键,不使用空格键;不允许把多个短语句写在一行中,即一行只写一条语句;if、for、do、while、case、switch、default等语句自占一行。
4. 类、方法及相对独立的程序块之间、变量说明之后必须加空行;关键字之后要留空格, 象if、for、while 等关键字之后应留一个空格再跟左括号"(", 以突出关键字;方法名与其左括号"("之间不要留空格, 以与关键字区别;二元操作符如 " ="、" +=" " >="、" <="、" +"、" *"、" %"、" &&"、" ||"、" <<" ," ^" 等的前后应当加空格;一元操作符如" !"、" ~"、" ++"、" --"等前后不加空格;xiang"[ ]"、" ." 这类操作符前后不加空格;for语句中的表达式应该被空格分开;强制转型后应该跟一个空格。
三、习惯
1. if、for、do、while等语句的执行语句部分有多条的话加括号"{}",单个语句可不加,但要另起一行并缩进
2. 每当一个case顺着往下执行时(因为没有break语句),通常应在break语句的位置添加注释;
3. 尽量避免在循环中构造和释放对象
4. 在使用局部变量的过程,按就近原则处理。不允许定义一个局部变量,然后在很远的地方才使用;
数学之美读后感
在中学时期就听老师说起,学计算机要数学好,开始我还以为是数学中的数理逻辑,现在才知道可以运用数学方法来解决自然语言处理的问题,在计算机的一些专业课上也经常看到很多的数学公式,看了数学之美的前三章之后之后,我知道了在机器翻译、语音识别、印刷体或手写体的识别、拼音纠错、汉字输入和文献查询中,可以用简单的统计模型来解决这个问题,数学在人工智能领域真的很神奇呢,它能把复杂的问题简单化,帮助程序员更好的实现一个算法,解决一个问题。可以将统计模型应用于解决分词的二义性问题,并利用Viterbi算法快速的找到最佳分词;利用隐含马尔科夫模型来解决语言处理中的问题,可以使复杂的语言识别问题能被非常简单的描述与解决。隐含马尔可夫模型不仅仅应用于语音识别中,也可以来解决机器翻译问题,以及解决印刷体和手写体的识别。
——未完待续