強推!阿里p7大佬整理的這幾款高效Java工具,網友:再也不加班了
今日分享開始啦,請大家多多指教~
今天給大家分享的是是Java 常用工具,話不多說,正文開始啦!
一、時間類 Date
1、java。util。Calendar(日曆類)
Calendar類是一個抽象基類,主要用於日期之間的各種計算
2、java。util。Date
java。util。Date日期格式為:年月日時分秒
java。sql。Date日期格式為:年月日
java。sql。Time日期格式為:時分秒
java。sql。Timestamp日期格式為:年月日時分秒納秒(毫微秒)
建構函式
(1)public Date()
分配 Date 物件並初始化此物件,以表示分配它系統的時間(精確到毫秒)。
(2)public Date(long date)
分配 Date 物件並初始化此物件,以表示自從標準基準時間(稱為“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。
(3)public Date(int year, int month, int date)
分配 Date 物件並初始化此物件,以表示由 year、month 和 date 引數指定的一天的開始時間(本地時間晚上 12 時)。
注:Date 類中年份的引數應該是實際需要代表的年份減去1900,月份的引數是實際需要代表的月份減去1以後的值,日的引數應該是實際需要代表的日。如107代表2007,是減去1900得到的數;0代表1月,1代表2月,這裡月份是0-11的數字,依此類推;1表示天數,數字範圍1-31。
(4)public Date(int year, int month, int date, int h, int min, int sec)
分配 Date 物件並初始化此物件,以表示本地時區中由 year、month、date、h、 min 和 sec 引數指定的瞬間。
(5)public Date(String s)
分配 Date 物件並初始化此物件,以表示字串 s 指出的日期和時間。
3、java。text。DateFormat
它允許進行日期格式化(日期 -> 文字)、分析(文字 -> 日期)和規範化。
它的子類 SimpleDateFormat 類是一個格式化Date 以及解析日期字串的工具,可以實現 String 到 Date,Date 到String的 互轉。
(1)Date—> String(format方法)
format方法:將日期型別(java。util。Date)資料格式化為字串(java。lang。String)
(2)String—> Date(parse方法)
parse方法:將字串型別(java。lang。String)解析為日期型別(java。util。Date)
二、System 類
System 類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。該類位於java。lang包。
由於該類的構造方法是private的,所以無法建立該類的物件,也就是無法例項化該類。其內部的成員方法和成員變數都是static(靜態)的,所以也可以很方便地呼叫它。
1、成員變數
(1)in
代表標準輸入流(鍵盤輸入)
//標準輸入流
public final static InputStream in;
(2)out
代表標準標準輸出流(顯示器)
//標準輸出流
public final static PrintStream out;
(3)err
代表標準錯誤輸出流(顯示器)
//標準錯誤流
public final static PrintStream err;
2、成員方法
(1)getProperty()
獲取系統屬性。常用的有:
(2) getenv(String name)
該方法用來根據環境變數的名字獲取環境變數。
(3)gc()
java垃圾回收器,這個方法不需要我們去呼叫,jvm發現系統有未使用的物件,會自己進行執行。通常會有兩種情況下會呼叫gc:當jvm記憶體不足時會呼叫;當cpu空閒的時候呼叫。
(4)exit(int status)
退出虛擬機器。exit(int)方法是終止當前正在執行的java虛擬機器,引數是狀態碼。
①該方法用於退出jvm,如果引數是0表示正常退出jvm,非0表示異常退出jvm。
②退出jvm後,後面的程式碼就不會執行。無論傳0還是傳1,Jvm都會退出。
③注意:0或者非0的資料都可以退出Jvm,對於使用者而言沒有任何區別,對於windows是有作用的,因為如果傳非0對於windows而言是異常終止的,如果是正版的作業系統,對於異常退出的軟體,需要把這些異常退出的軟體資訊做成報告發送給微軟,微軟就可以針對這些問題對系統做出一些修改。
④我們程式設計師的程式設計習慣是:如果在try塊中退出Jvm,try塊裡面是沒有異常的程式碼,所以try塊中要傳0,如果是在catch塊裡面退出Jvm,我們習慣於用非0退出。
三、Number 類
資料的基本資料型別有byte、int、short、long、double、float、boolean、char 等8種。但在實際的開發當中,我們有時候會遇到需要使用數字物件,而不是資料型別的情況。為解決這個問題,java為每一種資料型別,提供了相對應的類,即包裝類,對應的包裝型別也有八種:Byte、Integer、Short、Long、Double、Float、Boolean、Character。
包裝型別都是用final宣告,不可以被繼承重寫。
當資料型別需要被當做物件使用時,編譯器會將資料型別轉換為對應的包裝類,這個過程被稱為裝箱;而當包裝類物件被當做資料型別使用時,編譯器會將包裝類轉換為對應的資料型別,這個過程被稱為拆箱。
Number類是java。lang包下的一個抽象類,提供了將包裝型別拆箱成基本型別的方法,所有基本資料型別(除 boolean 和 char)的包裝型別都繼承了該抽象類,並且是final宣告不可繼承改變。
Number 的常用方法
四、格式化
Format 是一個用於格式化語言環境敏感的資訊(如日期、訊息和數字)的抽象基類。Format 定義了程式設計介面,用於將語言環境敏感的物件格式化為 String(使用 format 方法)和將 String 重新解析為物件(使用 parseObject 方法)。
Java 平臺為格式化日期、訊息和數字分別提供了三個特殊的 Format 的子類:DateFormat、MessageFormat 和 NumberFormat。具體的子類必須實現三個方法:
1、DateFormat
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。 SimpleDateFormat 是一個以與語言環境有關的方式來格式化和解析日期的具體類。它允許進行格式化(日期 -> 文字)、解析(文字 -> 日期)和規範化。
(1)日期和時間模式
(2)同步
日期格式是不同步的。建議為每個執行緒建立獨立的格式例項。如果多個執行緒同時訪問一個格式,則它必須是外部同步的。
2、NumberFormat
NumberFormat 是所有數值格式的抽象基類。此類提供格式化和解析數值的介面。NumberFormat 還提供了一些方法來確定哪些語言環境具有數值格式,以及它們的名稱是什麼。
(1)DecimalFormat
DecimalFormat 是 NumberFormat 的一個具體子類,用於格式化十進位制數字。該類設計有各種功能,使其能夠解析和格式化任意語言環境中的數,包括對西方語言、阿拉伯語和印度語數字的支援。它還支援不同型別的數,包括整數 (123)、定點數 (123。4)、科學記數法表示的數 (1。23E4)、百分數 (12%) 和金額 ($123)。所有這些內容都可以本地化。
① 特殊模式字元
模式中的很多字元都是按字面解釋的;在解析期間對其進行匹配,在格式化期間則不經改變地輸出。
② 舍入
DecimalFormat 提供 RoundingMode 中定義的舍入模式進行格式化。預設情況下,它使用 RoundingMode。HALF_EVEN。
③ 同步
DecimalFormat 通常不是同步的。建議為每個執行緒建立獨立的格式例項。如果多個執行緒同時訪問某個格式,則必須保持外部同步。
示例
(2)ChoiceFormat
ChoiceFormat 允許將格式應用到某個範圍的數。它通常用於在 MessageFormat 中處理複數。
Choice 格式不是同步的。建議為每個執行緒建立單獨的格式例項。如果多個執行緒併發訪問一個格式,則它必須保持外部同步。
3、MessageFormat
MessageFormat 提供了以與語言無關的方式生成連線訊息的方式。使用此方法構造向終端使用者顯示的訊息。
MessageFormat 獲取一組物件,格式化這些物件,然後將格式化後的字串插入到模式中的適當位置。
示例:
輸出:The disk “MyDisk” contains 1,273 file(s)。
注意:訊息格式不是同步的。建議為每個執行緒建立獨立的格式例項。如果多個執行緒同時訪問一個格式,則它必須是外部同步的。
五、隨機數類
1、Random 類
Random 的物件能夠產生隨機數,他可以產生隨機整數、隨機float、隨機double,隨機long。
2、Math 類的 random() 方法
Math 類的 random() 方法返回的數值是[0。0,1。0)的 double 型數值,可以對其進行運算和型別轉換獲得需要的隨機數。
獲得某個範圍的特定型別的隨機數:( 資料型別 )( 最小值 + Math。random() * ( 最大值 - 最小值 + 1 ) )
int a = (int)(30 + Math。random() * 71) // 生成[30,100]的隨機整數
小結
以上是目前整理的一部分內容,如果有遺漏的歡迎大家補充!
今日份分享已結束,請大家多多包涵和指點!
相關文章
- 2021-07-25我的世界:平原出現平頂山,村莊也陷進去了,這可不是1
- 2021-06-18百萬Java 面試題整理(2.0)
- 2021-05-08Java筆記-java中陣列的應用
- 2021-04-10第4課excel辦公軟體如何取消單元格
- 2021-04-02iPhone今年或啟用隨機序列號!