Java中提供了enum類用以進行枚舉。其定義方法以下,每一個枚舉類型間使用逗號隔開:java
public enum Color{ RED, BULE, BLACK, GREEN }
在定義了枚舉類以後便可在類中使用,其使用方法以下:程序員
public class Flower { public String fName; public Color color; }
在使用類時經過以下方法定義enum變量:算法
Flower flower = new Flower(); flower.color = Color.RED;
在enum類中定義了values方法
用於遍歷枚舉值,同時可在vlaues方法的返回對象上調用name
和ordinal
方法獲取實例的名稱和排序值。
以下所示,經過for-each循環進行遍歷:數組
for (Color color : Color.values() ) { System.out.printIn("ordianl" + flower.ordinal() + "\t" + flower.name); }
enum枚舉值一樣能夠運用在switch語句中,例如:安全
Flower flower = new Flower(); flower.color = Color.RED; switch (flower.color) { case RED: System.out.printIn("The Color Of The Flower Is Red"; break; case BLUE: System.out.printIn("The Color Of The Flower Is Blue"; break; case BLACK: System.out.printIn("The Color Of The Flower Is Black"; break; case GREEN: System.out.printIn("The Color Of The Flower Is Green"; break; }
JDK1.8定義了java.time包來對時間和日期進行操做。數據結構
Instant對象表示時間線上的一個時間點,經過靜態方法now來建立:架構
Instant now = Instant.now();
LocalDate類表示了不帶時區的日期。其方法有:
1 getYear() 獲取當前日期的年份
2 getMonth() 獲取當前日期的月份對象
3 getMonthValue() 獲取當前日期是第幾月
4 getDayOfWeek() 表示該對象表示的日期是星期幾
5 getDayOfMonth() 表示該對象表示的日期是這個月第幾天
6 getDayOfYear() 表示該對象表示的日期是今年第幾天
7 withYear(int year) 修改當前對象的年份
8 withMonth(int month) 修改當前對象的月份
9 withDayOfMonth(int dayOfMonth) 修改當前對象在當月的日期
10 isLeapYear() 是不是閏年
11 lengthOfMonth() 這個月有多少天
12 lengthOfYear() 該對象表示的年份有多少天(365或者366)
13 plusYears(long yearsToAdd) 相對當前對象增長指定的年份數
14 minusYears(long yearsToSubtract) 相對當前對象減去指定的年數
15 plusMonths(long monthsToAdd) 相對當前對象增長指定的月份數
16 minusMonths(long monthsToSubtract) 相對當前對象減去註定的月數
17 plusWeeks(long weeksToAdd) 相對當前對象增長指定的週數
18 minusWeeks(long weeksToSubtract) 相對當前對象減去指定的週數
19 plusDays(long daysToAdd) 相對當前對象增長指定的天數
20 minusDays(long daysToSubtract) 相對當前對象減去指定的天數
21 compareTo(ChronoLocalDate other) 比較當前對象和other對象在時間上的大小,返回值若是爲正,則當前對象時間較晚,
22 isBefore(ChronoLocalDate other) 比較當前對象日期是否在other對象日期以前
23 isAfter(ChronoLocalDate other) 比較當前對象日期是否在other對象日期以後
24 isEqual(ChronoLocalDate other) 比較兩個日期對象是否相等
25 now() 返回今天的日期
26 of(int year, int month, int dayOfMonth) 建立指定日期的對象框架
Period類表示了一個基於日期的時間量,經常用於表示日期間的間隔。其方法有:
1 between() 建立兩個LocalDate對象之間日期的Period對象
2 of() 建立指定時間的Period對象
3 ofDays() 建立指定天數的Period對象
4 ofWeeks() 建立指定週數的Period對象
5 ofMonths() 建立指定月數的Period對象
6 ofYears() 建立指定年數的Period對象
7 getDays() 獲取Period對象的天數
8 getMonths() 獲取Period對象的月數
9 getYears() 獲取Period對象的年數性能
LocalDateTime類表示一個沒有時區的日期和時間。其主要方法和LocalDate類類似,只是增長了對Hours、Minutes、Seconds的操做。學習
ZonedDateTime類表示一個有時區的日期和時間。其主要方法和LocalDateTime類類似,不過增長了getZoned() 方法獲取時區。
Duration類表示了一個基於時間的時間段,與Period類類似,不過期間部分精確到了納秒級,而且考慮到了ZonedDateTimes之間的時區。
DateTimeFormat類提供了format方法來格式化一個本地日期時間或帶時區的日期時間。
集合框架是一個用來表明和操縱集合的統一架構。全部的集合框架都包含以下內容:
集合框架被設計成要知足如下幾個目標。
1 Collection 接口
2 List 接口
3 Set
4 SortedSet
5 Map
6 Map.Entry
7 SortedMap
8 Enumeration
Java泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制容許程序員在編譯時檢測到非法的類型。
泛型的本質是參數化類型,也就是說所操做的數據類型被指定爲一個參數。
定義一個泛型方法,該方法在調用時能夠接收不一樣類型的參數。根據傳遞給泛型方法的參數類型,編譯器適當地處理每個方法調用。
下面是定義泛型方法的規則:
泛型類型的聲明和非泛型類的聲明相似,除了在類名後面添加了類型參數聲明部分。 和泛型方法同樣,泛型類的類型參數聲明部分也包含一個或多個類型參數,參數間用逗號隔開。一個泛型參數,也被稱爲一個類型變量,是用於指定一個泛型類型名稱的標識符。由於他們接受一個或多個參數,這些類被稱爲參數化的類或參數化的類型。