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表

字母日期或时间元素表示示例
yYear1996; 96
M年中的月份MonthJuly; Jul; 07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesday; Tue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978

示例表:

日期和时间模式结果
“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::这是一条自定义的属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值