Java其他API介紹,JavaAPI介紹

來源:互聯網
上載者:User

Java其他API介紹,JavaAPI介紹

有一些類雖然不像集合、多線程、網路編程中的類那樣屬於Java中的核心類,但是它們在開發過程中給我們帶來很多便利,這裡就對它們做下簡要的介紹和示範。

一、System類

System類中的構造方法是私人的,System類中的屬性和方法都是靜態。

常用方法: long currentTimeMills():返回以毫秒值為單位的目前時間。

System 類包含一些有用的類欄位和方法。下面的示範就擷取了本地系統的資訊,並把它們列印出來。

 1 package www.wsw.otherApi; 2 import java.util.Properties; 3 import java.util.Set; 4  5 public class SystemTest { 6     /** 7      * 跨平台的分隔字元,在什麼平台上運行,就調用那個平台的分行符號 8      * 另外。可以把系統的常用資訊定義成靜態欄位,方便使用。 9      */10     public static String line_speparator=System.getProperty("line.separator");11     12     public static void main(String[] args) {13         //常用方法: long currentTimeMills()14         long  l1=System.currentTimeMillis();//返回以毫秒值為單位的目前時間15         System.out.println(l1);//149000571079216         demo_1();17     }18 19     public  static void demo_1() {20         /**21          * 擷取系統資訊的鍵和值,並儲存到Properties集合中22          * Properties是HashTable的子類,它的鍵和值都是String類型的23          * 最好使用Properties自己的方法來完成元素的儲存和取出操作24          */25         Properties properties=System.getProperties();26         // Set<String> stringPropertyNames()  返回此屬性列表中的鍵集27         Set<String> nameSet=properties.stringPropertyNames();28         for(String name:nameSet){29             String value=properties.getProperty(name);30             System.out.println(name+"::"+value);31         }32     }33 34 }

 

二、 Runtime類

每個 Java 應用程式都有一個 Runtime 類執行個體,使應用程式能夠與其啟動並執行環境相串連。可以通過 getRuntime 方法擷取當前運行時。

應用程式不能建立自己的 Runtime 類執行個體。

有exec方法和destroy方法,參見示範。

 1 package www.wsw.otherApi; 2 import java.io.IOException; 3  4 public class RuntimeDemo { 5  6     public static void main(String[] args) throws IOException, InterruptedException { 7 /** 8  * Runtime沒有構造方法摘要,說明該類不能夠建立對象, 9  * 又該類有非靜態方法,則Runtime類有能返回該類執行個體的靜態方法,10  * 發現這樣的方法只有一個,則Runtime類使用了單例設計模式11  */12         Runtime r=Runtime.getRuntime();13         //execute 執行 exe14         Process p=r.exec("notepad.exe D:\\abc\\MapDemo.java");//開啟記事本,並用它解析D盤目錄下的一個檔案15         //Process是一個抽象類別16         Thread.sleep(2000);17         p.destroy();//殺掉子進程18         19     }20 21 }

 

三、Math類

* Math類中都是做數學運算的靜態方法
* 常用方法:
* ceil():返回大於等於參數的最小整數
* floor():返回小於等於參數的最大整數
* round():返回參數四捨五入得到的整數
* pow(a,b):返回a的b次方
*
* random():返回[0,1)範圍內的偽隨機數

 1 package www.wsw.otherApi; 2  3 public class MathDemo { 4  5     public static void main(String[] args) { 6          7         double d1=Math.ceil(-7.67);//-7.0 8         double d2=Math.floor(-7.67);//-8.0 9         double d3=Math.round(-7.67);//-8.010         sop("d1="+d1);11         sop("d2="+d2);12         sop("d3="+d3);13         14         sop(Math.pow(10,2)+"");//100.015         16         //擷取10個1-6之間的隨機數17         for (int i = 0; i < 10; i++) {18             //double d= (int)(Math.random()*6)+1;19             double d=Math.ceil(Math.random()*6);20             /**21              * 也可以寫為:22              * Random r=new Random();//Random位於Java.util包中,把隨機數封裝成了對象23              * 提供更多的方法24              * int d=r.nextInt(6)+1;25              */26              27             sop(d+"");28         }29 30     }31 //方便輸出32     public  static void sop(String str) {33         System.out.println(str);34     }35 36 }

 

四、Date類和DateFormat類

Date類屬於java.util包,類 Date 表示特定的瞬間,精確到毫秒。

它允許把日期解釋為年、月、日、小時、分鐘和秒值。它也允許格式化和解析日期文字。不過,這些函數的 API 不易於實現國際化。

從 JDK 1.1 開始,應該使用 Calendar 類實現日期和時間欄位之間轉換,使用 DateFormat 類來格式化和解析日期文字。Date 中的相應方法已廢棄。

DateFormat 屬於java.text包,是日期/時間格式化子類的抽象類別,它以與語言無關的方式格式化並解析日期或時間。

 

 把毫秒值轉化為Date對象
* 1.Date的構造方法
* 2.通過setTime方法
* 作用:可以使用Date類中的方法對Date對象的欄位(年月日等)進行操作
*
* 把Date對象轉化為毫秒值
* 1.getTime方法
* 作用:可以對毫秒值進行運算,算出時間差等
*
* 其他方法
* boolean before(Date when):判斷此日期是否在指定日期之前
* boolean after():判斷此日期是否在指定日期之後
* boolean equals():判斷此日期和指定日期是否相等
* int compareTo():返回正負零

 

下面的示範中還涉及到兩個轉化,把日期文字轉為為Date對象和把Date對象轉化為按某種格式的日期文字,

分別使用了DateFormat類中的parse方法和format方法。

 1 package www.wsw.otherApi; 2  3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7  8 public class DateDemo { 9 10     public static void main(String[] args) throws ParseException {11 12         methodDemo_3();13     }14     /**15      * 將日期文字-->日期對象16      * @throws ParseException  日期轉換異常17      */18     public static void methodDemo_3() throws ParseException {19         String str="2017--03--29";20         DateFormat dateFormat=new SimpleDateFormat("yyyy--MM--dd");21         /**22          * String str="2017年3月1日";23          * DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);24          */25         Date date=dateFormat.parse(str);26         System.out.println(date);//Wed Mar 29 00:00:00 CST 201727         28     }29     /**30      * 將日期對象進行格式化31      * 將日期對象-->日期格式的字串32      *   使用的是DateFormat中的format方法33      */34     public  static void methodDemo_2() {35         Date date=new Date();36         //擷取日期格式器對象,並為預設的風格 可以指定Long full風格等37         DateFormat  dateFormat1=DateFormat.getDateInstance(DateFormat.FULL);38         //擷取日期/時間格式器對象39         DateFormat  dateFormat2=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);40         41         //如果,想要使用自訂的格式呢?42         DateFormat dateFormat3=new SimpleDateFormat("MM月~dd日--yyyy年");43         String str1=dateFormat1.format(date);44         String str2=dateFormat2.format(date);45         String str3=dateFormat3.format(date);46         System.out.println(str1);//2017年3月22日 星期三47         System.out.println(str2);//2017年3月22日 下午02時14分06秒48         System.out.println(str3);//03月~22日--2017年49     }50     51     public  static void methodDemo_1() {52         long l=System.currentTimeMillis();53         Date d=new Date();//把目前時間封裝為Date對象54         Date d2=new Date(1490023019659l);//把毫秒值轉化為Date對象55         System.out.println(d);//Mon Mar 20 23:18:58 CST 201756         System.out.println(d2);//Mon Mar 20 23:16:59 CST 201757     }58 59 }

Date類練習

練習:計算“2017年6月1日”和“2017年3月22日”之間相差多少天?
* 思路:
* 1.把日期文字轉化為Date對象
* 2.把Date對象轉化為相應的毫秒值,然後相減
* 3.把毫秒值轉化為天

 1 package www.wsw.otherApi; 2  3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.util.Date; 6  7 public class DateTest { 8  9     public static void main(String[] args) throws ParseException {10         int day=subDate("2017年5月1日","2017年3月22日");11         System.out.println(day);12     }13 14     public  static int subDate(String str1, String str2) throws ParseException {15         DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);16         Date date1=dateFormat.parse(str1);17         Date date2=dateFormat.parse(str2);18         19         long time1=date1.getTime();20         long time2=date2.getTime();21         long time =time1-time2;22         int day=getDay(time);23         return day;24     }25 /**26  * 把毫秒值轉化為天數27  * @param time 毫秒值28  * @return 天數29  */30     public  static int getDay(long time) {31         int day=(int) (time/1000/60/60/24);32         return day;33     }34 35 }
View Code

 

五、Calendar類

Calendar 類是一個抽象類別,它為特定瞬間與一組諸如 YEARMONTHDAY_OF_MONTHHOUR日曆欄位之間的轉換提供了一些方法,

並為操作日曆欄位(例如獲得下星期的日期)提供了一些方法。

 1 package www.wsw.otherApi; 2 import java.util.Calendar; 3  4 public class CalendarDemo { 5  6     public static void main(String[] args) { 7         Calendar c=Calendar.getInstance(); 8          9         //使用Calendar類中的方法擷取某年的2月有多少天10         showDays(2016);//2016年2月29日星期一11     }12 13     public static void showDays(int year) {14         Calendar c=Calendar.getInstance();15         c.set(year, 2, 1);//把日期設定為某年的三月一號16         c.add(Calendar.DAY_OF_MONTH, -1);//把日期向前位移一天17         showDate(c);18     }19     20 //擷取日曆欄位,得到符合中國人習慣的日期顯示21     public static void showDate(Calendar c) {22         int year=c.get(Calendar.YEAR);23         int month=c.get(Calendar.MONTH)+1;//0代表1月24         int day=c.get(Calendar.DAY_OF_MONTH);25         int week=c.get(Calendar.DAY_OF_WEEK);//1代表星期天,7代表星期六26         27         System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));//2017年3月22日星期三28     }29 30     public  static String getWeek(int week) {31         String[] weeks={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};32         return weeks[week];33     }34 35 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.