首页 > 代码库 > 黑马程序员—System/Runtime/Calendor系统常用类

黑马程序员—System/Runtime/Calendor系统常用类

                                            System/Runtime/Calendor系统常用类

 

                                    ---------android培训ava 培训  、期待与您交流! ---------- 

 

  System类

System类包含一些有用的类字段和方法。它不能被实例化。

System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

System 可以描述系统文件使用的静态方法

 

staticPrintStream

err
  “标准”错误输出流。

staticInputStream

in
  “标准”输入流。

staticPrintStream

out
  “标准”输出流。

获得系统属性信息:System.getProperties()

 

方法摘要

static void

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

staticString

clearProperty(String key)
  移除指定键指示的系统属性。

staticConsole

console()
  返回与当前 Java 虚拟机关联的唯一
Console 对象(如果有)。

static long

currentTimeMillis()
  返回以毫秒为单位的当前时间。

static void

exit(int status)
  终止当前正在运行的 Java 虚拟机。

static void

gc()
  运行垃圾回收器。

staticMap<String,String>

getenv()
  返回一个不能修改的当前系统环境的字符串映射视图。

staticString

getenv(String name)
  获取指定的环境变量值。

staticProperties

getProperties()
  确定当前的系统属性。

staticString

getProperty(String key)
  获取指定键指示的系统属性。

staticString

getProperty(String key, String def)
  获取用指定键描述的系统属性。

staticSecurityManager

getSecurityManager()
  获取系统安全接口。

static int

identityHashCode(Object x)
  返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。

staticChannel

inheritedChannel()
  返回从创建此 Java 虚拟机的实体中继承的信道。

static void

load(String filename)
  从作为动态库的本地文件系统中以指定的文件名加载代码文件。

static void

loadLibrary(String libname)
  加载由 libname 参数指定的系统库。

staticString

mapLibraryName(String libname)
  将一个库名称映射到特定于平台的、表示本机库的字符串中。

static long

nanoTime()
  返回最准确的可用系统计时器的当前值,以毫微秒为单位。

static void

runFinalization()
  运行处于挂起终止状态的所有对象的终止方法。

static void

runFinalizersOnExit(boolean value)
  已过时。 该方法具有固有的不安全性。它可能对正在使用的对象调用终结方法,而其他线程同时正在操作这些对象,从而导致不正确的行为或死锁。

static void

setErr(PrintStream err)
  重新分配“标准”错误输出流。

static void

setIn(InputStream in)
  重新分配“标准”输入流。

static void

setOut(PrintStream out)
  重新分配“标准”输出流。

static void

setProperties(Properties props)
  将系统属性设置为 Properties 参数。

staticString

setProperty(String key, String value)
  设置指定键指示的系统属性。

static void

setSecurityManager(SecurityManager s)
  设置系统安全性。

 

System 读取系统在加载信息数据

例子1

importjava.util.Properties;

 

/**

 * System得到静态的方法和静态属性

 *@author dell

 *

 */

publicclass TestSystem {

  publicstaticvoid main(String[] args) {

     Properties properties = System.getProperties();

     //Properties 也是hashTanle的子类

     System.out.println("系统名称" + properties.get("os.name"));//系统名称

     for(Object obj:properties.keySet()){

       System.out.println(obj.toString());//打印系统在加载所获得的属性信息

     }

  }

}

运行结果,打印出系统信息

系统名称Windows 7

java.runtime.name //运行环境

sun.boot.library.path //sun lib 路径

java.vm.version //虚拟机版本

java.vm.vendor

java.vendor.url

path.separator

java.vm.name //虚拟机名字

file.encoding.pkg

user.country

user.script

sun.java.launcher

sun.os.patch.level

java.vm.specification.name

user.dir

java.runtime.version

java.awt.graphicsenv

java.endorsed.dirs

os.arch

java.io.tmpdir

line.separator

java.vm.specification.vendor

user.variant

os.name//系统名称

sun.jnu.encoding

java.library.path

java.specification.name

java.class.version

sun.management.compiler

os.version

user.home//用户

user.timezone

java.awt.printerjob

file.encoding

java.specification.version

java.class.path

user.name

java.vm.specification.version

sun.java.command

java.home

sun.arch.data.model

user.language

java.specification.vendor

awt.toolkit

java.vm.info

java.version

java.ext.dirs

sun.boot.class.path

java.vendor

file.separator

java.vendor.url.bug

sun.io.unicode.encoding

sun.cpu.endian

sun.desktop

sun.cpu.isalist

 

                           RunTime类

每个 Java 应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime方法获取当前运行时。Java程序是跨平台的,Runtime 这个类可以执行与其同与一个计算器的应用程序。

 

void

addShutdownHook(Thread hook)
  注册新的虚拟机来关闭钩子。

int

availableProcessors()
  向 Java 虚拟机返回可用处理器的数目。

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)
  在有指定环境和工作目录的独立进程中执行指定的字符串命令。

void

exit(int status)
  通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。

 long

freeMemory()
  返回 Java 虚拟机中的空闲内存量。

void

gc()
  运行垃圾回收器。

 

Runtime 打开电脑程序上程序

packageorg.nagi.base;

importjava.io.IOException;

/**

 * Runtime对象

 *该类是没有构造方法的

 *不能new 只能经静态方法得到

 *可以执行我们电脑里面程序

 *每个 Java 应用程序都有一个 Runtime类实例,

 *使应用程序能够与其运行的环境相连接。可以通过 getRuntime方法获取当前运行时。

 *@author dell

 */

publicclass ThreadTest {

  publicstaticvoid main(String[] args)throws IOException {

     //说明Runtime是单利模式

     Runtime runtime = Runtime.getRuntime();

     //调用runtime对象执行计算机上的程序

  Process p = runtime.exec("C:\\ProgramFiles\\KuGou\\KGMusic\\KuGou.exe");

     //p.destroy();杀死进程

  }

}

注:当Runtime 对象去程序找应用程序时,它首先是去环境变量里面找,如果是找不到的话会报出IO异常。

 

进程类 Process  

 

abstract void

destroy()
  杀掉子进程。

abstract int

exitValue()
  返回子进程的出口值。

abstractInputStream

getErrorStream()
  获取子进程的错误流。

abstractInputStream

getInputStream()
  获取子进程的输入流。

abstractOutputStream

getOutputStream()
  获取子进程的输出流。

abstract int

waitFor()
  导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。

 

日期处理:Date

Date表示特定的瞬间,精确到毫秒。

 

当对一个日期和时间格式化表示可以使用SimpleDateFormat

 

构造方法摘要

SimpleDateFormat()
  用默认的模式和默认语言环境的日期格式符号构造  SimpleDateFormat。

 

SimpleDateFormat(String pattern)
  用给定的模式和默认语言环境的日期格式符号构造  SimpleDateFormat。

 

SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
  用给定的模式和日期符号构造 SimpleDateFormat。

 

SimpleDateFormat(String pattern, Locale locale)
  用给定的模式和给定语言环境的默认日期格式符号构造  SimpleDateFormat。

 

 

比配的数据类型

 

日期和时间模式

结果

“yyyy.MM.dd G ‘at’ HH:mm:ss z”

2001.07.04 AD at 12:08:56 PDT

“EEE, MMM d, ‘’yy”

Wed, Jul 4, ‘01

“h:mm a”

12:08 PM

“hh ‘o’’clock’ a, zzzz”

12 o’clock PM, Pacific Daylight Time

“K:mm a, z”

0:08 PM, PDT

“yyyyy.MMMMM.dd GGG hh:mm aaa”

02001.July.04 AD 12:08 PM

“EEE, d MMM yyyy HH:mm:ss Z”

Wed, 4 Jul 2001 12:08:56 -0700

“yyMMddHHmmssZ"

010704120856-0700

"yyyy-MM-dd‘T‘HH:mm:ss.SSSZ"

2001-07-04T12:08:56.235-0700

 

 

例子:

import java.text.SimpleDateFormat;

importjava.util.Date;

/**

 * java日期处理

 *@author dell

*/

publicclassTestDate {

  publicstaticvoid main(String[] args) {

  Date d = new Date();//定义一个日期对象

  SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHH:mm:ss");//格式话一个日期对象

  System.out.println(s.format(d));//对日期对象进行必配

  

  }

}

 

取得某年某月某日:使用Calender对象来获取

取得日期字段

 YEAR + MONTH +DAY_OF_MONTH

 YEAR + MONTH +WEEK_OF_MONTH + DAY_OF_WEEK

 YEAR + MONTH +DAY_OF_WEEK_IN_MONTH + DAY_OF_WEEK

 YEAR + DAY_OF_YEAR

 YEAR + DAY_OF_WEEK+ WEEK_OF_YEAR

 

对于时间字段

 HOUR_OF_DAY

 AM_PM + HOUR

Calendar 的使用

Calendar 提供了一个类方法getInstance,以获得此类型的一个通用的对象。CalendargetInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:

     Calendar rightNow = Calendar.getInstance();
rightNow.get(//静态方法)

 

static int

DAY_OF_MONTH
  get 和 set 的字段数字,指示一个月中的某天。

static int

DAY_OF_WEEK
  get 和 set 的字段数字,指示一个星期中的某天。

static int

DAY_OF_WEEK_IN_MONTH
  get 和 set 的字段数字,指示当前月中的第几个星期。

static int

DAY_OF_YEAR
  get 和 set 的字段数字,指示当前年中的天数。

 

例子:

importjava.util.Calendar;

 

/**

 *得到日期某年某月某日

 *使用Calendar来取得

 *@author dell

 */

publicclass TestCalendar {

  publicstaticvoid main(String[] args) {

  

     //使用查表法

     String mos[] = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};

     

   Calendar rightNow = Calendar.getInstance();//格式话一个日期对象

      rightNow.set(2014, 8, 1);

      rightNow.add(Calendar.MONTH, 10);//日期的加法

      

      rightNow.add(Calendar.MONTH, -8);//日期的减法

      

      int index = rightNow.get(Calendar.MONTH);

     System.out.println(rightNow.get(Calendar.YEAR) + mos[index]+rightNow.get(Calendar.DAY_OF_MONTH));//得到一年第几个星期

  }

}

   ---------android培训ava 培训  、期待与您交流! ---------- 

 

黑马程序员—System/Runtime/Calendor系统常用类