【java】Maths類、Random類、System類、BigInteger類、BigDecimal類、Date類、SimpleDateFormat類
一、Maths類
1、概述
java.lang
Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函式。
2、成員變數
PI:3.145926
3、成員方法
* public static int abs(int a):取絕對值
* public static double ceil(double a):ceil天花板,獲取向上取整,但結果是double值
* public static double floor(double a):floor地板,獲取向下取整,但結果是double值
* public staticint max(int a,int b):獲取兩個值中的最大值
* public staticint min(int a,int b):獲取兩個值中的最小值
* public static double pow(double a,double b):求a^b,指數運算
* public static double random():生成0.0-1.0之間的隨機小數,包括0.0,不包括1.0
* public static int round(float a):四捨五入,得到的是一個整數,引數為double的也可以
* public static double sqrt(double a):取根號開平方,返回小數
注意:以上所有成員方法都是靜態的,構造方法會被私有(不讓其他類來建立該類物件)
二、Random類
1、java.util,父類為Object類,導包
2、功能
* 此類用於產生隨機數如果用相同的種子建立兩個 Random 例項,
* 則對每個例項進行相同的方法呼叫序列,它們將生成並返回相同的數字序列。
3、構造方法
* public Random():建立一個新的隨機數生成器,引數傳遞的是納秒值(種子數),每次(每納秒)執行都會得到不同的值
* public Random(long seed):使用單個long種子建立一個新的隨機數生成器,種子不同生成的隨機數是不同的(不用管內部機制比較複雜對開發沒什麼幫助)
4、成員方法
* public int nextInt():返回任意int型隨機數
* public int nextInt(int n)(重點掌握):返回[0,n)(左閉右開)區間內的Int值。
import java.util.Random;
public class Demo2_Random {
public static void main(String[] args) {
Random r = new Random();
/*int x = r.nextInt();
System.out.println(x);*/
for(int i = 0; i < 10; i++) {
//System.out.println(r.nextInt());
System.out.println(r.nextInt(100)); //要求掌握,生成在0到n範圍內的隨機數,包含0不包含n
}
int a = r2.nextInt();
int b = r2.nextInt();
System.out.println(a);
System.out.println(b);*/
}
}
三、System類:System類代表系統,系統級的很多屬性和控制方法都放置在該類的內部。
1、java.lang,父類為Object,final類(不能有子類)
2、不能被例項化(構造方法被私有,成員方法均為靜態的直接類名呼叫即可)
3、在System類提供的設施中,有標準輸入、標準輸出和錯誤輸出流
4、成員方法
- in:標準輸入流(鍵盤輸入)
- out:標準輸出流(顯示器)
- err:標準錯誤輸出流(顯示器)。
例如: System.out.println(“Test”);
該行程式碼的作用是將字串”Test”輸出到系統的標準輸出裝置上,也就是顯示在螢幕上。
後續在學習完IO相關的知識以後,可以使用System類中的成員方法改變標準輸入流等對應的裝置,例如可以將標準輸出流輸出的資訊輸出到檔案內部,從而形成日誌檔案等。
5、成員方法
1)public static void gc():執行垃圾回收器,手動清掃
注意:在一個原始檔中不允許出現兩個public類,會搶佔公共資源,一般建議擁有主方法的類為public
2)public static void exit(int status):終止當前正在執行的java虛擬機器
根據慣例,非0狀態是異常終止(扣電池),0是正常終止
3)public static long currentTimeMills():返回以毫秒為單位的當前時間,計算程式執行時間
返回:當前時間與謝天世界時1970年1月1日午夜之間的時間差
4)pubiic static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length) :陣列拷貝
src--被拷貝的陣列,dest--拷貝到哪
從制定源陣列中複製一個陣列,複製從指定的位置開始,到目標陣列的指定位置結束
System.arraycopy(src, 0,dest, 0, src.length)
public class Demo3_System {
public static void main(String[] args) {
//demo1();
//demo2();
//demo3();
int[] src = {11,22,33,44,55};
int[] dest = new int[8];
for (int i = 0; i < dest.length; i++) {
System.out.println(dest[i]);
}
System.out.println("--------------------------");
System.arraycopy(src, 0, dest, 0, src.length); //將陣列內容拷貝
for (int i = 0; i < dest.length; i++) {
System.out.println(dest[i]);
}
}
public static void demo3() {
long start = System.currentTimeMillis(); //1秒等於1000毫秒
for(int i = 0; i < 1000; i++) {
System.out.println("*");
}
long end = System.currentTimeMillis(); //獲取當前時間的毫秒值
System.out.println(end - start);
}
public static void demo2() {
System.exit(1); //非0狀態是異常終止,退出jvm
System.out.println("11111111111");
}
public static void demo1() {
for(int i = 0; i < 100; i++) {
new Demo();
System.gc(); //執行垃圾回收器,相當於呼喊保潔阿姨
}
}
}
class Demo { //在一個原始檔中不允許定義兩個用public修飾的類
@Override
public void finalize() {
System.out.println("垃圾被清掃了");
}
}
四、BigInteger類
1、可以讓超過Integer範圍內的資料進行運算
2、構造方法
* publicBigInteger(String val)
3、成員方法
* public BigInteger add(BigInteger val)
* public BigInteger subtract(BigInteger val)
* public BigInteger multiply(BigInteger val)
* public BigInteger divide(BigInteger val)
* public BigInteger[] divideAndRemainder(BigInteger val)。放商和玉樹
五、BigDecimal類
1、由於在運算的時候,float型別和double很容易丟失精度,演示案例。 所以,為了能精確的表示、計算浮點數,Java提供了BigDecimal
2、不可變的、任意精度的有符號十進位制數。
3、構造方法
* publicBigDecimal(String val):計算小數的加減乘除,通過構造中傳入字串的方式,可以很精確得到結果,開發時推薦
4、成員方法
* publicBigDecimal add(BigDecimal augend)
* publicBigDecimal subtract(BigDecimal subtrahend)
* publicBigDecimal multiply(BigDecimal multiplicand)
* publicBigDecimal divide(BigDecimal divisor)
import java.util.Date;
public class Demo6_Date {
public static void main(String[] args) {
//demo1();
//demo2();
Date d1 = new Date();
d1.setTime(1000); //設定毫秒值,改變時間物件
System.out.println(d1);
}
public static void demo2() {
Date d1 = new Date();
System.out.println(d1.getTime()); //通過時間物件獲取毫秒值
System.out.println(System.currentTimeMillis()); //通過系統類的方法獲取當前時間毫秒值
}
public static void demo1() {
Date d1 = new Date(); //如果沒有傳引數代表的是當前時間
System.out.println(d1);
Date d2 = new Date(0); //如果構造方法中引數傳為0代表的是1970年1月1日
System.out.println(d2); //通過毫秒值建立時間物件
}
}
六、Date類:util包下的,不能匯入aql包下的
1、類Date 表示特定的瞬間,精確到毫秒。
2、構造方法
* publicDate():當前時間
* publicDate(long date):1970年1月1日,通過毫秒值建立時間物件
3、成員方法
* public longgetTime():返回1970.1.10點以來此data物件表示的毫秒數,通過時間物件獲取毫秒值
Ststem.currentTimeMillis():通過系統類的方法獲取當前時間毫秒值
* public voidsetTime(long time):設定毫秒值,改變時間物件
七、SimpleDateFormat類:實現日期和字串的相互轉換
1、DateFormat類的概述
* DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。是抽象類,所以使用其子類SimpleDateFormat
2、SimpleDateFormat構造方法
* publicSimpleDateFormat()
* publicSimpleDateFormat(String pattern):建立時間的指定格式
3、成員方法
* publicfinal String format(Date date):將日期物件轉換為字串
* public Dateparse(String source):將時間字串轉換為日期物件
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo7_SimpleDateFormat {
public static void main(String[] args) throws ParseException {
//demo1();
//demo2();
//demo3();
//將時間字串轉換成日期物件
String str = "2000年08月08日 08:08:08";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d = sdf.parse(str); //將時間字串轉換成日期物件
System.out.println(d);
}
public static void demo3() {
Date d = new Date(); //獲取當前時間物件
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//建立日期格式化類物件
System.out.println(sdf.format(d)); //將日期物件轉換為字串
}
public static void demo2() {
Date d = new Date(); //獲取當前時間物件
SimpleDateFormat sdf = new SimpleDateFormat(); //建立日期格式化類物件
System.out.println(sdf.format(d)); //88-6-6 下午9:31
}
public static void demo1() {
//DateFormat df = new DateFormat(); //DateFormat是抽象類,不允許例項化
//DateFormat df1 = new SimpleDateFormat();
DateFormat df1 = DateFormat.getDateInstance(); //相當於父類引用指向子類物件,右邊的方法返回一個子類物件
}
}
相關文章
- java學習之BigInteger類、BigDecimal類JavaDecimal
- java Date日期類和SimpleDateFormat日期類格式JavaORM
- java calendar SimpleDateFormat Date 類JavaORM
- JAVA集合類簡要筆記 - 內部類 包裝類 Object類 String類 BigDecimal類 system類Java筆記ObjectDecimal
- Scanner類、Random類、ArrayList類random
- java學習之Date類、DateFormat類JavaORM
- Java學習關於時間操作的應用類--Date類、Calendar類及其子類Java
- JavaSE基礎:Math類和Random類Javarandom
- System類
- JAVA的Random類(轉)Javarandom
- 陣列,陣列類,SyStem類陣列
- Java的特殊類用法:檔案類、內部類、本地類、匿名類Java
- Java學習--使用 Date 和 SimpleDateFormat 類表示時間JavaORM
- Java基礎Day07(Map Calender Date 包裝類 System類 異常)Java
- IP地址分類(A類 B類 C類 D類 E類)
- (Java筆記)BigDecimal類Java筆記Decimal
- C++ 大整數類(BigInteger類)實現C++
- java.util.Date類Java
- Java學習關於隨機數工具類--Random類Java隨機random
- Java常用類-Object類JavaObject
- JAVA常用類--Cleaner類Java
- Java 8 中的 Random 類Javarandom
- java學習之Random類Javarandom
- 測試random類random
- Random 類的使用random
- Java —— 列舉類(enum 類)Java
- Java —— 檔案類(File 類)Java
- Java —— 集合工具類(Collections 類)Java
- JAVA常用類--Runtime類Java
- Java超類與子類Java
- JavaSE基礎:System類和Runtime類Java
- 28-BigDecimal類Decimal
- Java學習筆記-Day21 Java System類、Class類、內部類、異常處理Java筆記
- 正規表示式;數量詞;Date類(Date,DateFormat,SimpleDateFormat);Calender類(get,ste,add方法)(理思路5)ORM
- Java類與匿名內部類Java
- Java中常用類之Object類JavaObject
- java語言邏輯類、引數類和字元類Java字元
- C# 繼承 子類(派生類) 父類(基類)C#繼承