Java基礎之常用對象(一)


1.Date

1.Date概述

在Java中,Date類表示特定的瞬間,可以精確到毫秒。一般需要配合SimpleDateFormat 類進行格式化輸出。

2.相關方法

構造方法:

Date()
分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。
Date(long date)
分配 Date 對象並初始化此對象,以表示自從標準基準時間(稱爲“曆元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以來的指定毫秒數。

特有方法:

boolean after(Date when)
測試此日期是否在指定日期之後。
boolean before(Date when)
測試此日期是否在指定日期之前。
int compareTo(Date anotherDate)
比較兩個日期的順序。
boolean equals(Object obj)
比較兩個日期的相等性。
Object clone()
返回此對象的副本。

3.按照指定格式輸出日期

需要藉助SimpleDateFormat類中的方法:

SimpleDateFormat
構造方法

SimpleDateFormat(String pattern)
用給定的模式和默認語言環境的日期格式符號構造
SimpleDateFormat()
用默認的模式和默認語言環境的日期格式符號構造

使用SimpleDateFormat格式化輸出日期需要傳入一個pattern字符串,用來規定日期的輸出格式。以下爲pattern的常用對照表。

Patern表

字母 日期或時間元素 表示 示例
y Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的週數 Number 27
W 月份中的週數 Number 2
D 年中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text Tuesday; Tue
a Am/pm 標記 Text PM
H 一天中的小時數(0-23) Number 0
k 一天中的小時數(1-24) Number 24
K am/pm 中的小時數(0-11) Number 0
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鐘數 Number 30
s 分鐘中的秒數 Number 55
S 毫秒數 Number 978

示例表:

日期和時間模式 結果
“yyyy.MM.dd ‘at’ HH:mm:ss” 2001.07.04 at 12:08:56
“EEE, MMM d, ”yy” Wed, Jul 4, ‘01
“h:mm a” 12:08 PM

用到的方法:

String format(Date date)
將一個 Date 格式化爲日期/時間字符串。

StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
將給定的 Date 格式化爲日期/時間字符串,並將結果添加到給定的 StringBuffer。

需求描述:按照一般格式輸出當前系統日期。

示例代碼:

import java.text.SimpleDateFormat;
import java.util.Date;

    public class DateDemo {

        public static void main(String[] args) {
            //新建Date日期類
            Date date=new Date();
            //實例化格式類
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            String formatStr=sdf.format(date);
            System.out.println(formatStr);
        }

    }

程序運行結果:

當前日期:2015-12-29 20:16:14


2.Runtime

1.Runtime概述

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

Runtime無法通過構造方法進行實例化,但可以通過Runtime的靜態方法getRuntime()獲得一個實例對象。這也是單例設計模式的一處體現。

方法如下:

static Runtime getRuntime()
返回與當前 Java 應用程序相關的運行時對象。

2.相關方法

Process exec(String command)
在單獨的進程中執行指定的字符串命令。
Process exec(String[] cmdarray)
在單獨的進程中執行指定命令和變量。

Process exec(String[] cmdarray, String[] envp)
在指定環境的獨立進程中執行指定命令和變量。
Process exec(String[] cmdarray, String[] envp, File dir)
在指定環境和工作目錄的獨立進程中執行指定的命令和變量。
Process exec(String command, String[] envp)
在指定環境的單獨進程中執行指定的字符串命令。
Process exec(String command, String[] envp, File dir)
在有指定環境和工作目錄的獨立進程中執行指定的字符串命令。


static Runtime getRuntime()
返回與當前 Java 應用程序相關的運行時對象。

void exit(int status)
通過啓動虛擬機的關閉序列,終止當前正在運行的 Java 虛擬機。

int availableProcessors()
向 Java 虛擬機返回可用處理器的數目。


long freeMemory()
返回 Java 虛擬機中的空閒內存量。
void gc()
運行垃圾回收器。
void halt(int status)
強行終止目前正在運行的 Java 虛擬機。
long axMemory()
返回 Java 虛擬機試圖使用的最大內存量。
void runFinalization()
運行掛起 finalization 的所有對象的終止方法。
long totalMemory()
返回 Java 虛擬機中的內存總量。

3.使用Runtime打開其他程序

相關方法:

Process exec(String command)
在單獨的進程中執行指定的字符串命令。

說明:參數command可以是一個可執行程序的詳細路徑,若目標程序屬於系統程序,則不用加詳細路徑。本方法返回一個Process實例對象,該實例可用來控制進程並獲得相關信息。此外,本方法可能拋出IOException異常。

Process相關方法:

abstract void destroy()
殺掉子進程。

abstract InputStream getErrorStream()
獲取子進程的錯誤流。
abstract InputStream getInputStream()
獲取子進程的輸入流。
abstract OutputStream getOutputStream()
獲取子進程的輸出流。
abstract int waitFor()
導致當前線程等待,如有必要,一直要等到由該 Process 對象表示的進程已經終止。

示例代碼:

import java.io.IOException;

public class RuntimeDemo {

    public static void main(String[] args) {
        //獲取一個Runtime示例
        Runtime runtime=Runtime.getRuntime();
        //調用exec方法時可能拋出異常
        try {
            //調用exec方法執行指定路徑下的程序
            Process ps=runtime.exec("D:\\專用工具\\KuGou\\KuGou.exe");
            //程序休眠兩秒
            Thread.sleep(2000);
            //關閉打開的目標程序
            ps.destroy();

        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

說明:通過該示程序,即可成功運行指定路徑下的程序。並且,該程序會在兩秒後被關閉。

3.通過Runtime使用其他程序打開文件

格式:

runtime.exex(“程序名(具體路徑) 文件名”);

示例代碼:

import java.io.IOException;

public class RuntimeDemo {

    public static void main(String[] args) {
        //獲取一個Runtime示例
        Runtime runtime=Runtime.getRuntime();
        //調用exec方法時可能拋出異常
        try {
            //調用exec方法執行指定路徑下的程序
            Process ps=runtime.exec("notepad.exe D:\\1024test.txt");

        } catch (IOException e) {
            e.printStackTrace();
        } 
    }

}

說明:通過該程序。就可以實現通過記事本打開指定路徑下的文本文件


3.System

1.相關方法

該類無法被實例化,因爲該類未向外提供構造方法。此外,該類中的屬性和方法都是靜態成員,可以直接使用。

特有字段:

out:標準輸出,默認爲控制檯輸出
in:標準輸入,默認爲鍵盤輸入
err:標準錯誤輸出流。

相關方法:

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
從指定源數組中複製一個數組,複製從指定的位置開始,到目標數組的指定位置結束。

static long currentTimeMillis()
返回以毫秒爲單位的當前時間。

static long nanoTime()
返回最準確的可用系統計時器的當前值,以毫微秒爲單位。

static void exit(int status)
終止當前正在運行的 Java 虛擬機。


static String clearProperty(String key)
移除指定鍵指示的系統屬性。

static Properties getProperties()
確定當前的系統屬性。
static String getProperty(String key)
獲取指定鍵指示的系統屬性。
static String getProperty(String key, String def)
獲取用指定鍵描述的系統屬性。

static void setProperties(Properties props)
將系統屬性設置爲 Properties 參數。
static String setProperty(String key, String value)
設置指定鍵指示的系統屬性。


static Console console()
返回與當前 Java 虛擬機關聯的唯一 Console 對象(如果有)。

static void gc()
運行垃圾回收器。
static Map<String,String> getenv()
返回一個不能修改的當前系統環境的字符串映射視圖。
static String getenv(String name)
獲取指定的環境變量值。

static int identityHashCode(Object x)
返回給定對象的哈希碼,該代碼與默認的方法 hashCode() 返回的代碼一樣,無論給定對象的類是否重寫 hashCode()。

static void runFinalization()
運行處於掛起終止狀態的所有對象的終止方法。

2.系統屬性信息

1.獲取系統屬性

a.取出該屬性類所有信息:

static Properties getProperties()
確定當前的系統屬性。 該方法將獲取一個屬性類Properties

1.PropertiesHashtable的子類,也就是Map集合的一個子類對象,因此可以通過Map的方法取出Properties中的元素。並且該集合中存儲的都是字符串對象,沒有泛型定義。

2.使用Properties類中的特有方法可以返回一個Set集合進行操作。使用到的方法如下:

Set<String> stringPropertyNames()
返回此屬性列表中的鍵集,其中該鍵及其對應值是字符串,如果在主屬性列表中未找到同名的鍵,則還包括默認屬性列表中不同的鍵。

示例代碼:

    //部分代碼
    public static void main(String[] args) {
        //獲取儲存系統屬性信息的Properties對象
        Properties pro=System.getProperties();

        //通過Properties對象的特有方法返回鍵的Set集合
        //或:Set<String> infoSet=pro.keySet();
        Set<String> infoSet=pro.stringPropertyNames();

        //輸出所有系統屬性信息
        Iterator<String> it=infoSet.iterator();
        while(it.hasNext()){
            String info=it.next();
            System.out.println(info+":"+pro.get(info));
        }
    }

部分程序運行結果:

java.runtime.name:Java(TM) SE Runtime Environment
sun.boot.library.path:C:\Program Files (x86)\Java\jre1.8.0_60\bin
java.vm.version:25.60-b23
java.vm.vendor:Oracle Corporation
java.vendor.url:http://java.oracle.com/
path.separator:;
java.vm.name:Java HotSpot(TM) Client VM
file.encoding.pkg:sun.io
user.script:
user.country:CN

b.獲取指定系統屬性:

static String getProperty(String key)
獲取指定鍵指示的系統屬性。

示例代碼:

        //部分代碼
        //通過指定鍵的形式獲取指定系統信息
        String osName=System.getProperty("os.name");        
        //輸出當前操作系統 
        System.out.println("osname::"+osName);

程序運行結果:

osname::Windows 8

2.自定義系統特有信息

static String setProperty(String key, String value)
設置指定鍵指示的系統屬性。

說明:該方法以鍵值對的形式設置特有屬性,且下次啓動Java虛擬機時該屬性依舊會存在。

示例代碼:

        //部分代碼
        //自定義特性的系統屬性信息      
        System.setProperty("myInfo","這是一條自定義的屬性");  
        //讀取指定系統信息
        String myInfo=System.getProperty("myInfo");
        System.out.println("myInfo::"+myInfo);

程序運行結果:

myInfo::這是一條自定義的屬性

發佈了49 篇原創文章 · 獲贊 77 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章