Java其他API介绍
有一些類雖然不像集合、多線程、網絡編程中的類那樣屬于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);//1490005710792 16 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 執行 exe 14 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)范圍內的偽隨機數
?
四、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 2017 27 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 2017 56 System.out.println(d2);//Mon Mar 20 23:16:59 CST 2017 57 } 58 59 }Date類練習:
練習:計算“2017年6月1日”和“2017年3月22日”之間相差多少天?
* 思路:
* 1.把日期字符串轉化為Date對象
* 2.把Date對象轉化為相應的毫秒值,然后相減
* 3.把毫秒值轉化為天
?
五、Calendar類
Calendar 類是一個抽象類,它為特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉換提供了一些方法,
并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。
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 }?
轉載于:https://www.cnblogs.com/wsw-tcsygrwfqd/p/6600547.html
總結
以上是生活随笔為你收集整理的Java其他API介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JSOI2008】最大数 线段树
- 下一篇: 基础面试总结