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之后的時間毫秒。