java常用類解析一,小白進階必備!
Random
讓系統產生隨機數使用
0~9的隨機數 (int)(Math.random()*10); 0~999的隨機數 (int)(Math.random()*1000); a~b的隨機數 (int)(Math.random()*(b-a));
其實Math的random方法用的就是util包中的Random類
因此可以Random.nextDouble()替換Math.random(), 但是這樣說不太準確
Calendar類
有時為了取得更多的日期時間資訊,或對日期時間進行操作,可以使用java.util.Calendar類,Calendar是一個抽象類,不能例項化,但是通過靜態工廠方法getInstance()獲得Calendar例項。
Calendar類的主要方法:
- static Calendar getInstance():使用預設時區和語言環境獲得一個日曆。
- void set(int field, int value):將給定的日曆欄位設定為給定值。
- void set(int year,int month,int date):設定日曆欄位YEAR、MONTH和DAY_OF_MONTH的值。
- Date getTime():返回一個表示此Calendar時間值(從1970年1月1日00:00:00至現在的毫秒數)的Date物件。
- boolean after(Object when):判斷此Calendar表示的時間是否在指定時間之後,返回判斷結果。
- boolean before(Object when):判斷此Calendar表示的時間是否在指定時間之前,返回判斷結果。
- int compareTo(Calendar anotherCalendar):比較兩個Calendar物件表示的時間值。
java.lang.Math
Java語言是徹底地面向物件語言,哪怕是進行數學運算也封裝到一個類中的,這個類是java.lang.Math,Math類是final的不能被繼承。Math類中包含用於進行基本數學運算的方法,如指數、對數、平方根和三角函式等。這些方法分類如下:
舍入方法
- static double ceil(double a):返回大於或等於a最小整數。
- static double floor(double a):返回小於或等於a最大整數。
- static int round(float a):四捨五入方法。
最大值和最小值
- static int min(int a, int b):取兩個int整數中較小的一個整數。
- static int min(long a, long b):取兩個long整數中較小的一個整數。
- static int min(float a, float b):取兩個float浮點數中較小的一個浮點數。
- static int min(double a, double b):取兩個double浮點數中較小的一個浮點數。
- max方法取兩個數中較大的一個數,max方法與min方法引數類似也有4個版本,這裡不再贅述。
絕對值
- static int abs(int a):取int整數a的絕對值。
- static long abs(long a):取long整數a的絕對值。
- static float abs(float a):取float浮點數a的絕對值。
- static double abs(double a):取double浮點數a的絕對值。
三角函式:
- static double sin(double a):返回角的三角正弦。
- static double cos(double a):返回角的三角餘弦。
- static double tan(double a):返回角的三角正切。
- static double asin(double a):返回一個值的反正弦。
- static double acos(double a):返回一個值的反餘弦。
- static double atan(double a):返回一個值的反正切。
- static double toDegrees(double angrad):將弧度轉換為角度。
- static double toRadians(double angdeg):將角度轉換為弧度。
對數運算:static double log(double a),返回a的自然對數。
平方根:static double sqrt(double a),返回a的正平方根。
冪運算:static double pow(double a, double b),返回第一個引數的第二個引數次冪的值。
計算隨機值:static double random(),返回大於等於 0.0 且小於 1.0隨機數。
常量
圓周率PI, 自然對數的底數E。
大數值
對貨幣等大值資料進行計算時,int、long、float和double等基本資料型別已經在精度方面不能滿足需求了。為此Java提高了兩個大數值類:BigInteger和BigDecimal,這裡兩個類都繼承自Number抽象類。
BigInteger
java.math.BigInteger是不可變的任意精度的大整數。BigInteger構造方法有很多,其中字串引數的構造方法有兩個:
- BigInteger(String val):將十進位制字串val轉換為BigInteger物件。
- BigInteger(String val, int radix):按照指定基數radix將字串val轉換為BigInteger物件。
BigInteger提供多種方法,下面列舉幾個常用的方法:
int compareTo(BigInteger val):將當前物件與引數val進行比較,方法返回值是int,如果返回值是0,則相等;如果返回值小於0,則此物件小於引數物件;如果返回值大於0,則此物件大於引數物件。
- BigInteger add(BigInteger val):加運算,當前物件數值加引數val。
- BigInteger subtract(BigInteger val):減運算,當前物件數值減引數val。
- BigInteger multiply(BigInteger val):乘運算,當前物件數值乘引數val。
- BigInteger divide(BigInteger val):除運算,當前物件數值除以引數val。
BigDecimal
java.math.BigDecimal是不可變的任意精度的有符號十進位制數。BigDecimal構造方法有很多:
- BigDecimal(BigInteger val):將BigInteger物件val轉換為BigDecimal物件。
- BigDecimal(double val):將double轉換為BigDecimal物件,引數val是double型別的二進位制浮點值準確的十進位制表示形式。
- BigDecimal(int val):將int轉換為BigDecimal物件。
- BigDecimal(long val):將long轉換為BigDecimal物件。
- BigDecimal(String val):將字串表示數值形式轉換為BigDecimal物件。
BigDecimal提供多種方法,下面列舉幾個常用的方法:
- int compareTo(BigDecimal val):將當前物件與引數val進行比較,方法返回值是int,如果返回值是0,則相等;如果返回值小於0,則此物件小於引數物件;如果返回值大於0,則此物件大於引數物件。
- BigDecimal add(BigDecimal val):加運算,當前物件數值加引數val。
- BigDecimal subtract(BigDecimal val):減運算,當前物件數值減引數val。
- BigDecimal multiply(BigDecimal val):乘運算,當前物件數值乘引數val。
- BigDecimal divide(BigDecimal val):除運算,當前物件數值除以引數val。
- BigDecimal divide(BigDecimal val, int roundingMode):除運算,當前物件數值除以引數val。roundingMode要應用的舍入模式。
日期時間相關類
Java 8之前日期類是java.util.Date,Date類比較古老,其中的很多方法現在已經廢棄了,但是目前仍然有很多程式還在使用Date類。
此外,Java 8之前與日期時間相關類還有DateFormat、Calendar和TimeZone,DateFormat用於日期格式化,Calendar日曆類,TimeZone是時區類。
日期格式化和解析
日期格式化類是java.text.DateFormat,DateFormat是抽象類,它的常用具體類是java.text.SimpleDateFormat。
DateFormat中提供日期格式化和日期解析方法,具體方法說明如下:
- String format(Date date):將一個Date格式化為日期/時間字串。
- Date parse(String source):從給定字串的開始解析文字,以生成一個日期物件。如果解析失敗則丟擲ParseException。
另外,具體類是SimpleDateFormat構造方法如下:
- SimpleDateFormat():用預設的模式和預設語言環境的日期格式符號構造SimpleDateFormat。
- SimpleDateFormat(String pattern):用給定的模式和預設語言環境的日期格式符號構造SimpleDateFormat。pattern引數是日期和時間格式模式,下表所示是常用的日期和時間格式模式。
Java 8新日期時間相關類
Java 8之後提供了新的日期時間相關類、介面和列舉,這些型別內容非常多,令人生畏。但是使用起來非常方便。
ava 8之後提供了新的日期時間類有三個:LocalDate、LocalTime和LocalDateTime,它們都位於java.time包中,LocalDate表示一個不可變的日期物件;LocalTime表示一個不可變的時間物件;LocalDateTime表示一個不可變的日期和時間。
這三個類有類似的方法,首先先看看建立日期時間物件相關方法,這三個類並沒有提供公有的構造方法,建立它們物件可以使用靜態工廠方法,主要有now()和of()方法。
now()方法說明如下:
- static LocalDate now():LocalDate靜態工廠方法,該方法使用預設時區獲得當前日期,返回LocalDate物件。
- static LocalTime now():LocalTime靜態工廠方法,該方法使用預設時區獲得當前時間,返回LocalTime物件。
- static LocalDateTime now():LocalDateTime靜態工廠方法,該方法使用預設時區獲得當前日期時間,返回LocalDateTime物件。
of()方法有很多過載方法,說明如下:
- static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second):按照指定的年、月、日、小時、分鐘和秒獲得LocalDateTime例項,將納秒設定為零。
- static LocalTime of(int hour, int minute, int second):按照指定的小時、分鐘和秒獲取一個LocalTime例項。
- static LocalDate of(int year, int month, int dayOfMonth):按照指定的年、月和日獲得一個LocalDate例項,日期中年、月和日必須有效,否則將丟擲異常。
日期格式化和解析
Java 8提供的日期格式化類是java.time.format.DateTimeFormatter,DateTimeFormatter中本身沒有提供日期格式化和日期解析方法,這些方法還是由LocalDate、LocalTime和LocalDateTime提供的。
- 日期格式化
- 日期格式化方法是format,這三個類每一個都有String format(DateTimeFormatter formatter),引數formatter是DateTimeFormatter型別。
- 日期解析
- 日期解析方法是parse,這三個類每一個都有兩個版本的parse方法,具體說明如下:
- static LocalDateTime parse(CharSequence text):使用預設格式,從一個文字字串獲取一個LocalDateTime例項,如2007-12-03T10:15:30。
- static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter):使用指定格式化,從文字字串獲取LocalDateTime例項。
- static LocalDate parse(CharSequence text):使用預設格式,從一個文字字串獲取一個LocalDate例項,如2007-12-03。
- static LocalDate parse(CharSequence text, DateTimeFormatter formatter):使用指定格式化,從文字字串獲取LocalDate例項。
- static LocalTime parse(CharSequence text):使用預設格式,從一個文字字串獲取一個LocalTime例項。
- static LocalTime parse(CharSequence text, DateTimeFormatter formatter):使用指定的格式化,從文字字串獲取LocalTime例項。
格式化類DateTimeFormatter物件是通過ofPattern(String pattern)獲得,其中pattern是日期和時間格式模式,具體說明參考上上表。
好了,本篇文章就分享到這裡了。有興趣的新手夥伴們可以關注收藏起來,以後需要的時候可以多看看。如果有正在學java的程式設計師,可來我們的java技術學習扣qun哦:59789,1510裡面免費送java的視訊系統教程!