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