1、-Dproperty=propertyValuejava
JVM在運行時須要用到某些屬性,包括一些默認已設置好的屬性,如file.encoding, file.separator, java.home, java.version等;-D就是用於配置系統屬性編程
JAVA JDK文檔中規定:-Dproperty=value用於設置系統屬性;若是該屬性值包含空格,則必須用雙括號括起,長這樣:-Dproperty=「some thing」函數式編程
在JAVA代碼中的任何一處地方,能夠調用System.getProperty("key", "defaultValue")來獲取到該屬性值函數
在單元測試中,若是被測代碼須要使用某系統屬性值,則應該在before test中經過System.setProperty("key", "value")對該屬性值進行配置單元測試
須要補充說明的是,經過-D對系統屬性進行配置時,必須使得-D 緊鄰java命令,不然不生效。測試
2、-Pproperty=propertyValuegradle
經過gradle -Pproperty=propertyValue,能夠gradle task設置動態工程屬性。同時能夠在gradle task中使用該屬性:spa
someTask{orm
println property文檔
}
3、print, printf, println
1. println: 除了打印出指定message,還有換行符;
2. printf:用於打印帶格式的字符串(formatted string),也就是說不須要額外使用String.format()對字符串進行格式化;和C語言中的printf相似;
3. print:就是打印message, 木有什麼特別的了
4、groovy中的一點語言現象
1. 使用Delegate。效果是:若是class A中包含field ClassB objectB,且使用@Delegate標註,則在class A中能夠access到ClassB 中的任何field與method;
2. 函數式編程:方法能夠接受closure(即代碼塊)做爲參數;
3. 使用[]初始化一個List;如List<ClassA> classAs = [], 對list進行遍歷:classAs.each{classA->some action}; 像list中加入某個元素:classAs << new ClassA()
4. 能夠用string做爲方法名;
5. 有上下文的概念;
class A {
int a1;
int a2;
}
A a = new A(); A.with{int b = a1; int c = a2};不須要使用int b = A.a1; int c = A.a2