java枚举类是什么_Java学习--常用类(2)、Math类、枚举类
1.日期時間類
小知識:在我們日常生活所使用的計算機端時間,實際上是對某一個特定時間的計數,即我們現在的時間離特定時間的間隔,這個間隔被稱之為時間戳(timestamp),這個特定時間是:1970-01-01 00:00:00:000。這個間隔被long類型儲存,所以我們在計算機類上所看到的時間,實際上是一個long類型的整數型,在經過一些特定的方法后轉換為我們能夠識別的時間格式。
1.1Date類
Date類可以精確到我們生活中的某個瞬間,時間可精確到毫秒,我們可以通過Date類中的方法來獲取年月日,時分秒,亦可利用Date類來創建我們的日歷(新舊日歷均可)。
1.1.1Date類的實例
public static void main(String[] args) {// 創建一個Date對象,表示當前時間 // 根據當前時區、當前語言環境等創建當前時間Date date1 = new Date();System.out.println(date1);// 獲取date1的時間戳long time1 = date1.getTime();System.out.println(time1);// 通過時間戳創建Date對象long ts1 = 0;Date date2 = new Date(ts1);System.out.println(date2);// 需求:請構建一個時間,表示未來一天的當前時間。long ts2 = 24*3600*1000+date1.getTime();Date date3 = new Date(ts2);System.out.println(date3.toString());}Date是一個類,我們可以直接用它來new對象,同時使用它包含的方法。當然亦可通過時間戳來創建對象,注意:這里的時間戳是以毫秒為單位。
我們也可以利用Date去訪問未來或過去的時間,進而對兩個時間進行比較。
1.1.2時間的比較
public static void main(String[] args) {// 比較兩個時間Date d1 = new Date();Date d2 = new Date(d1.getTime()+1000);System.out.println(d1.before(d2));System.out.println(d1.after(d2));System.out.println(d1.compareTo(d2));System.out.println(d1.equals(d2));// d1.getTime() - d2.getTime()// setTime:改變Date對象的時間戳d1.setTime(d1.getTime()+24*3600*1000);System.out.println(d1);}1.1.3常見的日期格式化
因為單純的創建Date類所展現出來的時間,并不是我們日常常見的時間格式,我們可以通過日期格式化的方法來改變日期格式,使得我們更易看懂。
例一:
public static void main(String[] args) {Date date = new Date();System.out.println(date);// 日期格式化->字符串SimpleDateFormat df = new SimpleDateFormat();// [1]使用默認的模式和語言環境// 19-4-29 下午3:36String dateStr = df.format(date);System.out.println(dateStr);// [2]使用指定模式格式化// xxxx年xx月xx日 xx時xx分xx秒SimpleDateFormat df2 = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");String dateStr2 = df2.format(date);System.out.println(dateStr2);// 修改模式// df2.applyPattern("yyyy-MM-dd");df2.applyPattern("yyyy/MM/dd");String dateStr3 = df2.format(date);System.out.println(dateStr3);}例二:
public static void main(String[] args) {String str = "2019-04-29 15:48:00";SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 把子串->Datetry {Date date = df.parse(str);System.out.println(date);} catch (ParseException e) {e.printStackTrace();}}1.2Calendar類
由于Date類上有許多方法已經過時且不實用了,JDK在后續更新中,新出了Calendar類滿足時間屬性以及方法上的使用,其實用性有了較大的提高。且Calendar類把時間上的字段存儲在了一個容器上(初步理解為數組),我們可以在這個容器上進行set/get方法來達到我們的開發目的。
1.2.1Calendar實例
// 通過工廠設計模式構建一個對象Calendar cal = Calendar.getInstance();System.out.println(cal.toString());// 獲取年System.out.println(cal.get(Calendar.YEAR));// 獲取月,索引從0開始,0-表示1月 System.out.println(cal.get(Calendar.MONTH));System.out.println(cal.get(Calendar.DAY_OF_MONTH));// 時System.out.println(cal.get(Calendar.HOUR_OF_DAY));// 分System.out.println(cal.get(Calendar.MINUTE));// 秒System.out.println(cal.get(Calendar.SECOND));System.out.println(cal.get(Calendar.MILLISECOND));// 獲取星期 一周的第一天是周日開始System.out.println(cal.get(Calendar.DAY_OF_WEEK));// 本月的第一天和本月的最后一天System.out.println(cal.getActualMinimum(Calendar.DAY_OF_MONTH));System.out.println(cal.getActualMaximum(Calendar.DAY_OF_MONTH));2.Math類
在開發中主要用于產生隨機數或是簡單的運算。
以下是常見方法:
// 通過工廠設計模式構建一個對象Calendar cal = Calendar.getInstance();System.out.println(cal.toString());// 獲取年System.out.println(cal.get(Calendar.YEAR));// 獲取月,索引從0開始,0-表示1月 System.out.println(cal.get(Calendar.MONTH));System.out.println(cal.get(Calendar.DAY_OF_MONTH));// 時System.out.println(cal.get(Calendar.HOUR_OF_DAY));// 分System.out.println(cal.get(Calendar.MINUTE));// 秒System.out.println(cal.get(Calendar.SECOND));System.out.println(cal.get(Calendar.MILLISECOND));// 獲取星期 一周的第一天是周日開始System.out.println(cal.get(Calendar.DAY_OF_WEEK));// 本月的第一天和本月的最后一天System.out.println(cal.getActualMinimum(Calendar.DAY_OF_MONTH));System.out.println(cal.getActualMaximum(Calendar.DAY_OF_MONTH));3.枚舉類
當我們在面對一些常見常量時,我們常常使用枚舉類,例如:四季、性別、星期等等,這些在日常生活中不會發生改變的量我們常常利用枚舉類去定義他們,在初步學習java時,我們常常從控制臺輸入一些數字來進行流程匹配,但這種方式是不利于代碼閱讀的,俗稱魔鬼數字,這時,我們也可以利用枚舉類來達到我們的需求,亦可增強代碼簡潔性與閱讀性。
語法:
[修飾符] enum enumName{常量值1,常量值2,常量值3…常量值n[;] }枚舉是一種由程序員自定義的數據類型,跟基本數據類型的特點一樣,我們可以直接通過該類型聲明變量,不過其變量值一定是你聲明枚舉類中的值且不能為其他值。注意:在枚舉類中聲明的值系統將默認為靜態常量。
public enum Gender {男,女,保密; }public static void main(String[] args) {// 聲明一個Gender枚舉類型的變量gender,并取值為男Gender gender = Gender.男;}3.1枚舉與自負串之間的轉化
在學習基本數據類型的包裝類時,我們都知道基本數據類可以與字符串發生轉化,而枚舉作為一種自定義數據類型亦可完成這樣的轉化,且形式相似。
public static void main(String[] args) {// 聲明一個Gender枚舉類型的變量gender,并取值為男Gender gender = Gender.男;// 枚舉值->字符串System.out.println(gender.toString());// 字符串串-> 枚舉值String str = "保密";// 可能產生IllegalArgumentException 非法參數異常Gender gender2 = Enum.valueOf(Gender.class, str);System.out.println(gender2);}3.2枚舉與switch
這是枚舉類使用最多的方式,在開發中將有很強的作用。
public enum Week {MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY; }public static void main(String[] args) {// 需求:有一個變量表示星期幾,輸出對于的教學安排Week week = Week.TUESDAY;switch (week) {case MONDAY:case TUESDAY:case THURSDAY:case FRIDAY:case SATURDAY:{System.out.println("上課");break;}case WEDNESDAY:case SUNDAY:{System.out.println("練習");break;}}}在枚舉中亦可打印出每一個值
public static void main(String[] args) {// 枚舉變量的其他方法Week week = Week.SUNDAY;System.out.println(week.name());System.out.println(week.ordinal());}總結
以上是生活随笔為你收集整理的java枚举类是什么_Java学习--常用类(2)、Math类、枚举类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp mysql批量入库_T
- 下一篇: cors漏洞 复现_Jsonp跨域漏洞浅