驼峰标识,.java
结尾html
统一为UTF-8java
Transport...能够解决property文件不能正常显示为中文的问题git
每个部分之间用一个空行隔开github
不换行(line-wrapped),一行写完编程
// This is acceptable void doNothing() {} // This is equally acceptable void doNothingElse() { } // This is not acceptable: No concise empty blocks in a multi-block statement try { doSomething(); } catch (Exception e) {}
4个空格数组
列外状况:app
究竟应该在哪里折行?随性,一个主要的指导是:最好在语法层面上折行ide
MyLambda<String, Long, Object> lambda = (String label, Long value, Object obj) -> { ... }; Predicate<String> predicate = str -> longExpressionInvolving(str);
垂直的空白测试
水平空白ui
关键字后面的小括号("(")之间要有一个空格做为分隔,if,for,catch
关键字前面的大括号("}")之间要有一个空格做为分隔,else, catch
左大括号("{")前面要有一个空格,两个例外:
@SomeAnnotation({a, b})
(no space is used)String[][] x = {{"foo"}};
(no space is required between {{
)二元或者三元运算符先后都要有空格,包括相似运算符的符号,如:
<T extends Foo & Bar>
可是不包括:
在,:;
后面有空格,还有强转的右括号后面")"
行末注释"//"两侧都须要空格,多个是容许的,但不是必须的
在变量类型和声明之间:List
数组初始化的大括号里面,左大括号后面和右大括号前面的空格不是必须的
new int[] {5, 6}
and new int[] { 5, 6 }
are both valid
水平对齐所须要的空白:不须要
增长维护成本
便于理解运算顺序,而没必要记住Java优先级表
enum
若是元素有构造方法或者通常方法的状况,元素之间能够用空行隔开
private enum Answer { YES { @Override public String toString() { return "yes"; } }, NO, MAYBE }
若是没有构造方法等能够用下面的方式
private enum Suit { CLUBS, HEARTS, SPADES, DIAMONDS }
变量声明
int a, b
;数组
new int[] { new int[] { 0, 1, 2, 3 0, } 1, 2, new int[] { 3, 0, 1, } 2, 3 } new int[] {0, 1, 2, 3}
String[] arr
,而不是String arr[]
switch语句
注解
注释
多行注释中第一行和最后一行不写注释
/* * This is // And so /* Or you can * okay. // is this. * even do this. */ */
修饰词
Java中修饰词的顺序
public protected private abstract default static final transient volatile synchronized native strictfp
数字字面值
若是是long
类型的字面值,最后加"L",而不是"l",如:long length = 1000L;
仅仅使用ascii字符和数字,少数状况使用下划线(好比:常量命名,大写,多个单词之间使用下划线隔开)
package:全小写,不使用下划线
class:
method:
constant:
很是量字段命名
形参名
局部变量命名
泛型参数
下面两种方式中选一个
T
怎么将多个单词或者单词短语转换为驼峰标识的命名方法
一些例子:
须要转换的字符串 | 正确的 | 不正确的 |
"XML HTTP request" | XmlHttpRequest |
XMLHTTPRequest |
"new customer ID" | newCustomerId |
newCustomerID |
"inner stopwatch" | innerStopwatch |
innerStopWatch |
"supports IPv6 on iOS?" | supportsIpv6OnIos |
supportsIPv6OnIOS |
"YouTube importer" | YouTubeImporter YoutubeImporter |
@Override
须要catch异常,并作处理,若是没有必要处理,要用注释说明
Object.finalize
若是非要重写,请阅读并理解《Effective Java》里面避免Finalizer
的部分
其余在idea中的设置
统一为"\n"
统一为:tab 4 个空格
参考