java和groovy比较:
https://blog.csdn.net/dengxie3415/article/details/102353662
学习:https://www.cnblogs.com/softidea/p/4368506.html
参考:https://www.w3cschool.cn/groovy/groovy_xml.html
基础:
介绍:groovy是基于java的面向对象的语言。
版本介绍:Groovy 1.0于2007年1月2日发布,其中Groovy 2.4是当前的主要版本。 Groovy通过Apache License v 2.0发布。
特点:
1.同时支持静态和动态类型
2.支持运算符重载
3.本地言语列表和关联数组
4.对正则表达式的本地支持
5.对各种标记语言xml和html的原生支持
6.Groovy和Java的语言类型
7.Groovy扩展了java.lang.Object
groovy环境:
基本语法(和java类似)
1.引用导入(关键词):import 注:java的内置库和自定义的jar都可以使用
2.类和方法块:
3. class Example {
static void main(String[] args) {
// Using a simple println statement to print output to the console
println('Hello World');
}
}
4.和java一样的单行和多行注释(//和/* */)
5.分号 (就像Java编程语言,它需要具有分号在Groovy定义多个语句之间进行区分。)
class Example {
static void main(String[] args) {
// One can see the use of a semi-colon after each statement
def x = 5;
println('Hello World');
}
}
上述例子示出了分号使用了不同行的代码语句之间进行区分。
注:分号不是必须的 可以省略(注意换行)
6.身份标识(也即是定义变量,关键字:def)
1)规范:标识符被用来定义变量,函数或其他用户定义的变量。标识符以字母开头,美元或下划线。他们不能以数字开头。(和java类似)
7.关键字
as | assert | break | case |
catch | class | const | continue |
def | default | do | else |
enum | extends | false | Finally |
for | goto | if | implements |
import | in | instanceof | interface |
new | pull | package | return |
super | switch | this | throw |
throws | trait | true | try |
while |
8.空白
空白是在编程语言如Java和Groovy用来形容空格,制表符,换行符和注释术语。空格分隔从另一个声明的一部分,使编译器,其中一个元素标识的声明。
例如,在下面的代码示例,存在关键字def和变量x之间的空白。这是为了让编译器知道DEF是需要被使用,并且是x应该是需要被定义的变量名的关键字。
def x = 5;
基础类型:
在任何编程语言中,需要使用各种变量来存储各种类型的信息。变量只是保留值的存储位置,这意味着,当你创建一个变量,你保留在内存中的一些空间来存储与变量相关的值。
您可能喜欢存储各种数据类型的信息,如字符串,字符,宽字符,整数,浮点数,布尔值等。基于变量的数据类型,操作系统分配内存并决定什么可以存储在保留的存储器中。
内置的数据类型:
byte --字节,例如2。
short --短整型,例如10。
int --整形,例如1234。
long --长整型,。例如10000090。
char --字符,例如“A”。
float --用来表示32为浮点数,例如12.34。
double --用来表示64为浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.3456565。
boolean --布尔值,可以是true或false。
String --以字符串形式表示的文本例如,“Hello World”的。
值的范围:
byte | -128到127 |
short | -32,768到32,767 |
int | 2,147,483,648 到,147,483,647 |
long | -9,223,372,036,854,775,808到+9,223,372,036,854,775,807 |
float | 1.40129846432481707e-45到3.40282346638528860e + 38 |
double | 4.94065645841246544e-324d 到1.79769313486231570e + 308d |
和Java一样的对应的对象类型(就是JDK的对象):
类型除了基本类型,还允许以下对象类型(有时称为包装器类型)-
- java.lang.Byte
- java.lang.Short
- java.lang.Integer
- java.lang.Long
- java.lang.Float
- java.lang.Double
此外,以下类可用于支持高精度计算 -
名称 | 描述 | 例如 |
---|---|---|
java.math.BigInteger | 不可变的任意精度的有符号整数数字 | 30克 |
java.math.BigDecimal | 不可变的任意精度的有符号十进制数 | 3.5克 |
如下:
class Example {
static void main(String[] args) {
//Example of a int datatype
int x = 5;
//Example of a long datatype
long y = 100L;
//Example of a floating point datatype
float a = 10.56f;
//Example of a double datatype
double b = 10.5e40;
//Example of a BigInteger datatype
BigInteger bi = 30g;
//Example of a BigDecimal datatype
BigDecimal bd = 3.5g;
println(x);
println(y);
println(a);
println(b);
println(bi);
println(bd);
}
}
日期和时间
获取时间:
Date() 定义:当前日期和时间
Date (长毫秒) 定义:配一个Date对象并将其初始化以表示自标准基准时间(称为“该历元”,即1970年1月1日,00:00:00 GMT)起指定的毫秒数。
Date ("05/11/2015") 定义:自定义时间
注:以下是Date类的给定方法。在接受或返回年,月,日,小时,分钟和秒值的类Date的所有方法中,使用以下表示形式 -
年y由整数y-1900表示。
一个月份由0到11的整数表示; 0是1月,1是2月,等等;因此11是12月。
日期(月中的日)以通常方式由1至31的整数表示。
一个小时由从0到23的整数表示。因此,从午夜到上午1点的小时是小时0,而从中午到下午1点的小时是小时12。
分钟由通常方式的0至59的整数表示。
第二个由0至61的整数表示。
时间对象的方法:
1.after() 测试此日期是否在指定日期之后。
2.equals() 比较两个日期的相等性。当且仅当参数不为null时,结果为true,并且是表示与该对象时间相同的时间点(毫秒)的Date对象。
3.compareTo() 比较两个日期的顺序。
4.toString() 将此Date对象转换为字符串
5.before() 测试此日期是否在指定日期之前。
6.getTime() 返回自此Date对象表示的1970年1月1日,00:00:00 GMT以来的毫秒数。
7.setTime() 设置此Date对象以表示一个时间点,即1970年1月1日00:00:00 GMT之后的时间毫秒。