朝花夕拾之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

相关文章
相关标签/搜索