Java13的API_JAVA基础--JAVA API常见对象(其他API)13
一、其他API
1.System類
system類中的方法和成員變量都是靜態(tài)的, 不需要創(chuàng)建System對象就可以直接使用。
1 /*
2 * 演示System的使用3 */
4 public classSystemDemo {5 public static voidmain(String[] args) {6
7 /*
8 * System類中的靜態(tài)成員變量: out 和 err的區(qū)別9 * out和err都可以把需要輸出的信息展示在控制臺上。10 * 但是由于JVM的底層針對out和err是兩種不同的實現(xiàn)機制11 * 在輸出的時候,數(shù)據(jù)的顯示先后次序并不能確定12 *13 * 建議:開發(fā)中要么全部是out,要么全部使用err14 */
15 System.out.println("你好");16 System.err.println("hello");17 //強制退出JVM
18 System.exit(0);19 //獲取系統(tǒng)的當(dāng)前時間,得到的是當(dāng)前時間距離1970-1-1 0:0:0秒的時間差20 //獲取到的是一個毫秒值。1秒=1000毫秒
21 System.out.println(System.currentTimeMillis());22 }23 }
結(jié)論:只要獲取和系統(tǒng)相關(guān)的信息時就應(yīng)該考慮使用System類。
2. Math類
Math:它封裝了和數(shù)學(xué)運算相關(guān)的方法。
Math類中的方法都是靜態(tài)的,可以通過類名直接調(diào)用。
1 /*
2 * 演示Math類3 */
4 public classMathDemo {5 public static voidmain(String[] args) {6
7 System.out.println(Math.E);8 System.out.println(Math.PI);9
10 //返回大于指定數(shù)據(jù)的最小整數(shù)
11 System.out.println(Math.ceil(4.56));12 //返回小于指定數(shù)據(jù)的最大整數(shù)
13 System.out.println(Math.floor(4.56));14 //四舍五入
15 System.out.println(Math.round(4.56));16 //0~1之間的一個隨機數(shù)
17 System.out.println(Math.random());18 }19 }
3. Random類
Random類它是專門負(fù)責(zé)產(chǎn)生隨機數(shù)的類。
1 /*
2 * 演示隨機數(shù)類3 */
4 public classRandomDemo {5 public static voidmain(String[] args) {6
7 //創(chuàng)建產(chǎn)生隨機數(shù)的那個對象
8 Random r = newRandom();9
10 System.out.println(r.nextFloat());11 System.out.println(r.nextDouble());12 System.out.println(r.nextInt());13 System.out.println(r.nextBoolean());14 System.out.println(r.nextLong());15 System.out.println(r.nextInt(100));16
17 for( int i = 0 ; i < 6 ; i++){18 System.out.println(r.nextInt(6) + 1);19 }20 }21 }
4. 日期類
a. Date類
生活中有時間日期數(shù)據(jù),在Java中也有對應(yīng)的類描述這些數(shù)據(jù)。
類 Date 表示特定的瞬間,精確到毫秒。
在 JDK 1.1 之前,類 Date 有兩個其他的函數(shù)。它允許把日期解釋為年、月、日、小時、分鐘和秒值。它也允許格式化和解析日期字符串。不過,這些函數(shù)的 API 不易于實現(xiàn)國際化。從 JDK 1.1 開始,應(yīng)該使用 Calendar 類實現(xiàn)日期和時間字段之間轉(zhuǎn)換,使用 DateFormat 類來格式化和解析日期字符串。Date 中的相應(yīng)方法已廢棄。
Date類是表示時間日期數(shù)據(jù)的對象,但是這個類中的方法不利于其他國家程序員進(jìn)行時間的顯示等操作,其中大部分的方法已經(jīng)過時,由Calendar和DateFormat類代替。
1 /*
2 * 演示Date類3 * 構(gòu)造方法:4 * Date()5 * Date類中的空參數(shù)的構(gòu)造方法:它的目的僅僅是將當(dāng)前的時間封裝成Date對象6 * Date(long date)7 * Date類中的接收long類型的整數(shù)構(gòu)造方法,它的目的是將指定的一個毫秒值封裝成Date對象8 * 普通的方法:9 * getTime() 獲取Date對象所表示的當(dāng)前時間對應(yīng)的毫秒值10 * setTime(long time) 將當(dāng)前Date對象對應(yīng)的毫秒值修改為指定的毫秒值11 *12 * Date類中需要掌握:13 * Date對象和毫秒值之間的轉(zhuǎn)換。14 * Date對象轉(zhuǎn)毫秒值的作用,是為了計算2個時間之間的時間差15 * 計算出來的時間差是一個毫秒值,需要手動的轉(zhuǎn)成具體的天數(shù),或者月,或者年等數(shù)據(jù)16 *17 */
18 public classDateDemo {19 public static voidmain(String[] args) {20
21 //使用Date類中的空參數(shù)的構(gòu)造方法創(chuàng)建Date對象
22 Date date = newDate();23 Date date2 = new Date(999900001231L);24 //date.setTime(1230L);25 //打印
26 System.out.println(date);27 System.out.println(date2);28 }29 }
b.日期時間格式化類
b.1 DataFormat類介紹
DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關(guān)的方式格式化并解析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(也就是日期->文本)、解析(文本->日期)和標(biāo)準(zhǔn)化。將日期表示為 Date 對象,或者表示為從 GMT(格林尼治標(biāo)準(zhǔn)時間)1970 年 1 月 1 日 00:00:00 這一刻開始的毫秒數(shù)。
DateFormat 提供了很多類方法,以獲得基于默認(rèn)或給定語言環(huán)境和多種格式化風(fēng)格的默認(rèn)日期/時間 Formatter。格式化風(fēng)格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用這些風(fēng)格的更多細(xì)節(jié)和示例。
DateFormat類:它可以完成Date對象和字符串之間的轉(zhuǎn)成。但是由于這個類是抽象類,不能直接去創(chuàng)建對象,并且這個類對日期和字符串之間的轉(zhuǎn)換方式只有4種,并不能滿足用戶想要的格式:
1 /*
2 * 簡單演示DateFormat類3 */
4 public classDataFormatDemo {5 public static voidmain(String[] args) {6
7 //獲取到DateFormat 對象
8 DateFormat format =DateFormat.getInstance();9
10 //將日期對象轉(zhuǎn)成字符串
11 Date d = newDate();12 String s =format.format(d);13 System.out.println(s);14
15 }16 }
b.2 SimpleDateFormat類介紹
SimpleDateFormat:它和DateFormat功能一致。都是完成Date對象和字符串之間的轉(zhuǎn)換。
SimpleDateFormat是DateFormat的子類,并且在創(chuàng)建SimpleDateFormat對象的時候,如何完成日期和字符串之間的轉(zhuǎn)換格式書寫,由開發(fā)人員自己指定。
創(chuàng)建SimpleDateFormat對象時如何指定轉(zhuǎn)換的格式:
創(chuàng)建SimpleDateFormat對象指定的格式:
年使用yyyy
月MM
天dd
時HH
分mm
秒ss
中間的分隔符由程序員自己指定。
解析日期:將字符串形式的日期數(shù)據(jù)轉(zhuǎn)成Date對象 使用的SimpleDateFormat類中的parse方法
格式化日期:將Date對象轉(zhuǎn)成字符串形式的日期數(shù)據(jù),使用SimpleDateFormat類中的format方法
1 /*
2 * 演示SimpleDateFormat類3 */
4 public classSimpleDataFormatDemo {5 public static void main(String[] args) throwsParseException {6 method3();7 }8 /*
9 * 如下的2個字符串形式的時間數(shù)據(jù),計算它們的時間差10 * "2016年01月02日 10:27:14"11 * "2019-11/22 10:27:14"12 * 計算它們之間相隔多少天?13 */
14 public static void method3() throwsParseException {15
16 String s = "2016年01月02日 10:27:14";17 String s2 = "2016-01/03 10:27:14";18
19 //需要定義2個不同的格式器對象
20 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");21 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM/dd HH:mm:ss");22
23 //解析
24 Date d =sdf.parse(s);25 Date d2 =sdf2.parse(s2);26
27 //需要獲取不同的Date對象對應(yīng)的毫秒值
28 long t =d.getTime();29 long t2 =d2.getTime();30
31 //計算時間差
32 long day = Math.abs((t - t2) / 1000 / 60 / 60 / 24);33 System.out.println(day);34 }35 //將字符串?dāng)?shù)據(jù)轉(zhuǎn)成Date對象
36 public static void method2() throwsParseException {37
38 String s = "2016年01月02日 10:27:14";39
40 //創(chuàng)建格式器對象
41 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");42
43 //將字符串轉(zhuǎn)成Date對象
44 Date d =sdf.parse(s);45
46 System.out.println(d);47 }48 //將日期對象轉(zhuǎn)成字符串?dāng)?shù)據(jù)
49 public static voidmethod() {50 //創(chuàng)建格式器對象
51 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");52
53 //將日期對象轉(zhuǎn)成字符串
54 Date d = newDate();55 String s =sdf.format(d);56 System.out.println(s);57 }58 }
3. 日歷類
Calender類:它是日歷類。其實這個類相當(dāng)于一個容器。這個容器中保存者當(dāng)前時間相關(guān)的所有信息。
比如:今天是一年中的第幾天,今天是一周中的第幾天,今天是這個月的第幾周,今天是幾月,幾日,時分秒等信息都保存在這個容器中。
Calender類 年月日時分秒,12個月 ,星期 等對應(yīng)的英文數(shù)據(jù)都封裝成靜態(tài)的成員變量。
Calender類是抽象類,它中提供了靜態(tài)的getInstance方法獲取到Calender對象()。
1 //簡單演示Calendar
2 public static voidmethod() {3
4 //獲取Calendar對象
5 Calendar c =Calendar.getInstance();6
7 System.out.println(c);8
9 System.out.println(c.get( Calendar.YEAR ));10 /*
11 * 計算機中的月份是從 零開始的。12 * 0 表示 1月13 * 1 表示2月14 * 11表示12月15 * 12表示下一年的1月16 */
17 System.out.println(c.get( Calendar.MONTH ));18 System.out.println(c.get( Calendar.DAY_OF_MONTH ));19
20 }21
22
23 /*
24 * 計算任意一年的2月有多少天?25 * 由于時間數(shù)據(jù)是連續(xù)的,因此我們可以將當(dāng)前的時間設(shè)置為26 * 當(dāng)年的3月1日,然后讓天數(shù)-1,當(dāng)前的時間就自動的變?yōu)榱?月的最后一天。27 * 我們只需要將當(dāng)前這個月中的天數(shù)獲取出來,就是二月共計有多少天28 */
29 public static voidmethod2() {30
31 //獲取到Calendar對象
32 Calendar c =Calendar.getInstance();33
34 //設(shè)置當(dāng)前的時間為 3月 1日
35 for (int year = 1000; year < 2555; year++) {36 c.set(year, 2, 1);37 //讓天數(shù) -1
38 c.add(Calendar.DAY_OF_MONTH, -1);39 //獲取到當(dāng)前處理后的月中的天數(shù)
40 System.out.println(year + "年的2月有 " + c.get(Calendar.DAY_OF_MONTH) + "天");41 }42 }
二 、 JDK5的特性
1. 靜態(tài)導(dǎo)入
1 /*
2 * 靜態(tài)導(dǎo)入演示3 * 在程序中如果需要使用某些類中的靜態(tài)成員,可以在程序開始的時候,4 * 先將這些靜態(tài)成員導(dǎo)入到程序中5 * 然后在程序中就可以直接使用靜態(tài)成員,而不需要指定類名6 */
7 import staticjava.lang.Math.PI;8 import staticjava.lang.System.out;9
10 public classStaticImportDemo {11 public static voidmain(String[] args) {12 out.println(PI);13 }14 }
2.? 可變參數(shù)
1 /*
2 * 演示可變參數(shù)3 */
4 public classParameterArgumentsDemo {5 public static voidmain(String[] args) {6
7 int sum = getSum(1, 2, 4);8 System.out.println(sum);9 /*
10 * 如果需要操作多個類型相同的數(shù)據(jù)的,將這些數(shù)據(jù)需要傳遞給某個方法11 * 在JDK5之前:可以先將這些數(shù)據(jù)存儲到數(shù)組中,然后將數(shù)組傳遞給方法12 *13 * 到JDK5之后,可以使用可變參數(shù)的技術(shù)來接收不確定個數(shù)的數(shù)據(jù)14 *15 */
16 int[] arr = {11,22,33,44,55,66,77,88};17
18 int sum2 = getSum(12,33,44,55);19 System.out.println(sum2);20 }21
22 /*
23 * 演示定義可變參數(shù)的方法24 * 可變參數(shù):25 * 1、它實際中接收到的數(shù)據(jù)之后,依然保持在數(shù)組中,在方法中還是要通過數(shù)組的方式進(jìn)行操作26 * 2、如果方法上除了可變參數(shù)之外,還有其他的參數(shù),這時可變參數(shù)必須寫在整個方法參數(shù)列表的最后27 */
28 public static int getSum(int x , int... arr ) {29
30 int sum = 0;31 for (int i = 0; i < arr.length; i++) {32 sum +=arr[i];33 }34 returnsum;35 }36 /*計算傳遞的數(shù)組中的和值37 public static int getSum(int[] arr) {38
39 int sum = 0;40 for (int i = 0; i < arr.length; i++) {41 sum += arr[i];42 }43 return sum;44 }45 */
46 //需求:定義功能 計算2個數(shù)的和值
47 public static int getSum(int i, int j , intk) {48 return i + j +k;49 }50
51 //需求:定義功能 計算2個數(shù)的和值
52 public static int getSum(int i, intj) {53 return i +j;54 }55 }
3.foreach循環(huán)
1 /*
2 * 在JDK5中提供了一個可以簡化for循環(huán)的技術(shù):3 * foreach技術(shù):高級for循環(huán)4 * 普通for循環(huán)的書寫格式:5 * for( 表達(dá)式1 ; 表達(dá)式2 ; 表達(dá)式3 ){6 * 循環(huán)體7 * }8 * foreach書寫格式:9 * for( 數(shù)組空間中的元素類型 變量名 : 數(shù)組名 ){10 * 循環(huán)體11 * }12 * 使用foreach遍歷數(shù)組的時候,定義的變量名中保存的數(shù)據(jù)是從數(shù)組中取出的元素13 * 弊端:foreach只能遍歷,不能對數(shù)組空間中的值進(jìn)行其他的操作14 */
15 public classForEachDemo {16 public static voidmain(String[] args) {17
18 int[] arr = {11,22,33,44,55,66};19
20 //使用普通for循環(huán)遍歷
21 for(int i = 0 ; i < arr.length ; i ++){22 System.out.print(arr[i] + " ");23 }24 System.out.println("\n===================");25 //使用foreach遍歷數(shù)組
26 for( intx : arr ){27 System.out.print(x + " ");28 }29 }30 }
總結(jié)
以上是生活随笔為你收集整理的Java13的API_JAVA基础--JAVA API常见对象(其他API)13的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事件传递 java_将事件传递/发送到父
- 下一篇: java容器类继承_JAVA容器 -