java基礎_12_Java常用的其它類

Java中常用類


System

System 類中的方法和屬性都是靜態的。

描述系統的一些信息。

獲取系統屬性信息:Properties 

例:

Properties prop = System.getProperties();

 

/*  因爲Properties Hashtable的子類,也就是Map集合的子類對象

               那麼可以通過map的方法取出該集合中的元素

               Properties該集合中存儲都是字符串,沒有泛型定義。*/

           for(Object obj : prop.keySet())

           {

              String value = (String)prop.get(obj);

              System.out.println(obj+"::"+value);

            }

 

           //獲取指定屬性信息。

           String value = System.getProperty("os.name");

           System.out.println(value);

 

            //在系統中自定義一些特有信息

            System.setProperty("mykey","myvalue12345");

            System.out.println(System.getProperty("mykey"));

 

           //jvm啓動時,動態加載一些屬性信息

            String v = System.getProperty("haha");

Runtime

每個 Java 應用程序都有一個 Runtime 類實例,使應用程序能夠與其運行的環境相連接。可以通過 getRuntime 方法獲取當前運行時

 

該類並沒有提供構造函數。

說明不可以new 對象,那麼會直接想到該 類中的方法都是靜態的。

但發現該類中還有非靜態方法。說明該類肯定會提供了方法獲取本類對象。

該方法是靜態的,並返回值類型是本類類型。

 

該方式是:static Runtime getRuntime();

例:

Runtime r = Runtime.getRuntime();

 

//執行指定的字符串命令

Process p = r.exec("C:\\Program Files\\PDF閱讀器.EXE");

Thread.sleep(5000); //讓程序執行一會

p.destroy();//掉子進程

Math

Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數

如果想格式化數字等,使用DecimalFormat 很方便。

例:

給定一個小數,保留該小數的後兩位。

方法一:

思路:我是這麼想的. 1,先乘100   2,取整    3,除100

public static double method(double d)

{

  double d2 = d*100;

   int i = (int)d2;

   double d3 =((double)i)/100;

   return d3;

 }

方法二:

使用DecimalFormat轉換

DecimalFormat df = new DecimalFormat("#.00"); //以指定格式創建

System.out.println(df.format(f));

 

方法三:

使用String.format

System.out.println(String.format("%.2f", f));

 

DecimalFormat

如果想對數轉成各種格式,那麼使用該類,很方便。

如:把2123123.32232    轉成2,123,123.32  等 使用 applyPattern("#,#00.00")

DecimalFormat 是 NumberFormat 的一個具體子類,用於格式化十進制數字。能夠解析和格式化何格式的數字。

可直接使用 applyPattern() 或間接使用 API 方法來設置模式

 

Date

對於時間的處理。

但是Date功能好多無法使用使用

DateFormat :是日期/時間格式化子類的抽象類

Calendar :是一個抽象類,分開操作年,月等比較方便。

TimeZone 表示時區偏移量,也可以計算夏令時。

而DateFormat是抽象類,使用其子類SimpleDateFormat 來對時間進行格式化。

例:

Date d = new Date();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss ");

 

//調用format 方法格式化爲指定的Date對象

String time = sdf.format(d);

System.out.println(time);

 

例二:

如果我們想對年進行加減等,那麼使用Calendar 比較方便

            因爲:

                SimpleDateFormat sdf = new SimpleDateFormat("yyyy年");

                String time = sdf.format(d); //返回的是String類型如果想要加一年減一年就不方便

                如:

                      Calendar c = Calendar.getInstance();

                      c.set(2015,7,14);

                     c.get(Calendar.YEAR);  //獲取年

 

Executors

此類可以實現線程池的產生,定時執行線程等功能。(從1.5開始)

例:讓程序每隔 5S 產生一個隨數

    //產生一個線程池,池中所保存的線程數爲 1
		ScheduledExecutorService time = Executors.newScheduledThreadPool(1);
		time.scheduleAtFixedRate(  
			new Runnable(){   //產生一個匿名線程
			    public void run() {
				  System.out.println(new Random().nextInt(10)+1);  //隨機產生一個1-10的數
			    }				
			}, 
			2,    //2S後去執行這個線程
			2,		//每隔 2+2*x 後執行一次
			TimeUnit.SECONDS);

 

AnnotatedElement

表示目前正在此 VM 中運行的程序的一個已註釋元素。該接口允許反射性地讀取註釋。由此接口中的方法返回的所有註釋都是不可變並且可序列化的。調用者可以修改已賦值數組枚舉成員的訪問器返回的數組;這不會對其他調用者返回的數組產生任何影響。

Annotation[] getAnnotations()   

返回此元素上存在的所有註釋。(如果此元素沒有註釋,則返回長度爲零的數組。)

Annotation[] getDeclaredAnnotations()

 返回直接存在於此元素上的所有註釋。與此接口中的其他方法不同,該方法將忽略繼承的註釋。(如   

 果沒有註釋直接存在於此元素上,則返回長度爲零的一個數組。)


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