API-System、Runtime、Date、Calendar、Math

一、System類

 
1、概述
    System是描述系統一些信息的類,類中的屬性和方法都是靜態的。不能被實例化,沒有提供構造函數。
    out:標準輸出流。默認是控制檯。
    in:標準輸入流。默認是鍵盤。
 
2、方法
a、獲取系統的屬性信息:
        Properties  getProperties();
說明:
        1)此方法返回的雙列集合,即鍵值對;因爲Properties是Hahstable的子類,也就是Map集合的一個子類對象,那麼通過Map方法取出該集合中的元素。
         2)該集合存儲的都是字符串,沒有泛型定義
b、獲取指定屬性信息:
        String getProperty(String  key);
c、在系統內定義特有信息:
        String setProperty(String  key,String  value);
d、如何在jvm啓動時,加載一些屬性信息:
       通過命令:java -D<name>=<value>可以設置特有的系統屬性信息
代碼示例:
<span style="font-family:Microsoft YaHei;font-size:14px;">import java.util.*;
class  SystemDemo
{
	public static void main(String[] args) 
	{
		Properties p = System.getProperties();//獲取系統的屬性信息
		
		System.setProperty("mykey","myvalue");//在系統內定義特有信息
 
		for(Object obj:p.keySet())
		{
			String value = (String)p.get(obj);
		System.out.println(obj+"----"+value);
			
		}
 
		System.out.println("os.name----"+System.getProperty("os.name"));//獲取指定屬性信息
 	}
}</span>
 
 
二、Runtime類
 
1、概述
    每個java應用程序都有一個Runtime類實例,使用應用程序能與其中運行的環境相連接,應用程序不能創建自己的Runtime類的實例,是由系統底層自己創建的。該類使用了單例設計模式完成。
     
2、方法
a、獲取本類對象
        static Runtime  getRuntime();
b、在單獨的進程中執行指定字符串命令
        Process  exec(String command);
c、在Process中有一個殺掉子進程的方法,可將exec方法開啓的進程結束
        void destroy();
代碼示例:
<span style="font-family:Microsoft YaHei;font-size:14px;">class RuntimeDemo 
{
	public static void main(String[] args) throws Exception
	{
		Runtime r = Runtime.getRuntime();//獲取本類對象
 
		Process p = r.exec("notepad.exe ForEachDemo.java");//用記事本打開指定文件  
 
		Thread.sleep(4000);//讓線程等待4秒  
		p.destroy();//殺掉自己啓動的進程  
	}
}</span>
 
三、Date類
 
1、概述
        Date類表示特定的瞬間,精確到毫秒。
        java中的默認顯示格式爲:Mon Jun 10 22:35:21 CST 2013
2、自定義格式
具體步驟:
        1)創建Date對象
        2)將時間模式封裝到SimpleDateFormat對象中
        3)調用format方法讓格式化模式指定Date對象
代碼示例:
<span style="font-family:Microsoft YaHei;font-size:14px;">import java.util.*;
import java.text.*;
class DateDemo 
{
	public static void main(String[] args) 
	{
		Date d = new Date();//創建Date對象
		System.out.println(d);
 
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		String time = sdf.format(d);
		System.out.println(time);
	}
}</span>
 
四、Calendar類
 
1、概述:
        1)Calendar是一個抽象類,它爲特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH等日曆字段之間的轉換提供了一些方法。
        2)Calendar可以對年月日等時間進行獲取。並提供了相應的子段值。可參閱API文檔。
2、方法:
2.1、基本獲取時間
        1)獲取年份:Calendar.YEAR
        2)獲取月份:Calendar.MONTH     //值爲實際月份-1
        3)獲取日期:Calendar.DAY_OF_MONTH
        4)獲取星期:Calendar.DAY_OF_WEEK   //值爲實際星期+1
        5)獲取小時:Calendar.HOUR_OF_DAY
        6)獲取分鐘:Calendar.MINUTE
        7)獲取秒數:Calendar.SECOND
2.2、設置時間:
        1)根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量:
                void add(int field,int amount);
        2)獲取指定的日曆字段對應的時間值:
                int get(int field);
        3)將給定日曆字段對應的時間值設置爲給定值:
                void set(int field,int value);
       設置日曆字段 YEAR、MONTH和DAY_OF_MONTH的值:
                void set(int year,int month,int date);
代碼示例:
<span style="font-family:Microsoft YaHei;font-size:14px;">import java.util.*;
import java.text.*;
class CalendarDemo 
{
	public static void main(String[] args) 
	{
		Calendar c = Calendar.getInstance();
		printCalendar(c);
		
		c.add(Calendar.YEAR,5);
		printCalendar(c);
 
		c.add(Calendar.MONTH,10);
		printCalendar(c);
 
		c.add(Calendar.DAY_OF_MONTH,-23);
		printCalendar(c);
 
		c.set(2010,7,10);
		printCalendar(c);
	}
 
	public static void printCalendar(Calendar c)
	{
		String[] mons = {"一月","二月","三月","四月",
						 "五月","六月","七月","八月",
						 "九月","十月","十一月","十二月",};
 
		String[] weeks = {"","星期日","星期一","星期二",
						  "星期三","星期四","星期五","星期六"};
 
		int index = c.get(Calendar.MONTH);
 
		int index1 = c.get(Calendar.DAY_OF_WEEK);
		
		sop(c.get(Calendar.YEAR)+"年");
		//sop((c.get(Calendar.MONTH)+1)+"月");
		sop(mons[index]);
		sop(c.get(Calendar.DAY_OF_MONTH)+"日");
		//sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));
		sop(weeks[index1]);
	}
 
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}</span>
運行結果:
uploading.4e448015.gif轉存失敗重新上傳取消
 
五、Math類
 
1、概述
        Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。該類全爲靜態方法。
 
2、方法
double  ceil(double d);//返回大於指定數據的最小整數
double  floor(double d);//返回小於指定數據的最大整數
        double  pow(doublea,double b);//返回a的b次方
        long      round(doubleb);//返回b四捨五入的值 
        double  random();//返回正號的double值,是一個大於等於0.0且小於1.0的隨機數
 
3、Random類
這是java.util中的一個單獨的類,該類對象用於獲取隨機數。與Math中的random方法是一樣的,不過這個類有自身的方法,可以將相應的隨機數強轉爲指定基本數據類型。
如:int  nextInt(int n);//返回一個僞隨機數,它是取自此隨機數生成器序列的、在 0(包括)和指定值(不包括)之間均勻分佈的 int值。
 
代碼示例:
<span style="font-family:Microsoft YaHei;font-size:14px;">import java.util.*;
class  MathDemo
{
	public static void main(String[] args) 
	{
		double d = Math.ceil(12.34);//ceil返回大於指定數據的最小整數。
		sop("d="+d);
 
		double d1 = Math.floor(12.34);//floor返回小於指定數據的最大整數。
		sop("d1="+d1);
 
		long l = Math.round(12.67);//四捨五入。
		sop("l="+l);
		
		double d2 = Math.pow(2,4);
		sop("d2="+d2);
 
		sop("----------------------------------------");
		//隨機數Math.random()
		System.out.print("( ");
		for (int x=0; x<10; x++)
		{
			int n =(int)( Math.random()*10+1);
			System.out.print(n+" ");
		}
		System.out.print(")");
 
		sop("");
		//隨機數Random類
		System.out.print("( ");
		Random r = new Random();
		for (int x=0; x<10; x++)
		{
			int n = r.nextInt(10)+1;
			System.out.print(n+" ");
		}
		System.out.print(")");
	}
 
	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}</span>
運行結果:
uploading.4e448015.gif轉存失敗重新上傳取消
 
 
 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章