朝花夕拾之April. 9th

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

相關文章
相關標籤/搜索