Java笔记十三.常用API-Runtime、Runable、System类

常用API-Runtime、Runable、System类

一、Runtime类

1.概述:Runtime类封装了Java命令本身的运行进程,即每个Java应用程序都会拥有一个Runtime类对象,当应用程序运行时,允许其通过这个对象与运行环境进行交互,但需要注意的是应用程序本身不能为自己创建Runtime类对象。Runtime类的许多方法与System中的方法想重复,我们不能直接创建Runtime实例,但可以通过静态方法Runtime.getRuntime获得正在运行的Runtime对象的引用。Exec方法:Java命令运行后,本身是多任务操作系统上的一个进程,在这个进程中启动一个新的进程,即执行其他程序时使用exce方法。exec方法返回一个代表子进程的Process类对象,通过这个对象,Java进程可以与子进程交互。

2.API介绍

(1)继承关系

java.lang.Object  < ----  java.lang.Runtime

(2)返回当前应用的Runtime对象

Runtime runtime=Runtime.getRuntime()
;

(3)重要方法

Process
exec(String command):在一个单独进程中执行指定的字符串命令

Process
exec(String[] cmdarray, String[] envp):在一个单独进程中基于指定的环境执行指定命令及参数

void
gc():启动垃圾回收箱

static
Runtime getRuntime() :返回当前Java应用程序的Runtime对象

void
halt(int status) :强制性终止当前运行的Java虚拟机

Methods inherited from class
java.lang.Object

clone, equals, finalize, getClass, hashCode, notify,
notifyAll, toString, wait, wait, wait

3.Runtime应用开发

(1)在当前进程中启动一个新的子进程

首先,我们通过Runtime.getRuntime()方法获取当前应用程序的Runtime类对象;然后,通过该对象调用exce方法来启动一个新的子进程,并通过返回的Process对象实现Java程序与子进程的交互。

Runtime run=Runtime.getRuntime();                    //返回当前应用程序的Runtime对象

Process p=run.exec("notepad.exe");
//在当前进程中启动一个新的进程(打开记事本)

(2)实例源码

<span style="font-size:14px;">/*实现:运行应用程序后启动一个子进程:用Windows的记事本打开RuntimeTest.java这个源程序
 * 并在5秒中后销毁该子进程,记事本程序被关掉*/
public class RuntimeTest {
 public static void main(String[] args)
 {
  Process p=null;
  try{
   Runtime run=Runtime.getRuntime();//返回当前应用程序的Runtime对象
   p=run.exec("notepad.exe");	 //在当前进程中启动一个新的进程
   Thread.sleep(5000);
  }
  catch(Exception e)
  {
   System.out.println(e.getMessage());
  }
  p.destroy();
 }

}</span>

二、Runnable接口

1.概述:Runnable接口主要是用于提供在处于活动中的对象执行指定代码的一种通用协议,例如,Runable接口可以被Thread继承,所谓的处于活动状态是指这个线程已经开发运行并且还没有结束。Runnable接口可以被任何类继承,这些类的实例将会在线程中被执行并且在这些类中需要实现一个无参数的run方法,而无需继承Thread。

2.重要方法

void run()

当一个对象继承Runnable接口被用来创建一个线程时,启动该线程将会在该单独指定中的线程中调用对象的run方法

三、System接口

1.概述:Java不支持全局函数和变量,Java设计者将一些系统相关的重要方法和变量收集到了一个同意的类中,这就是Systemt类。System类不能被实例化,Syetem类中的所有成员都是静态的,当我们要引用这些变量和方法时,直接使用System类名作前缀。Systemt类主要提供的功能有:标准输入流、标准输出流、标准错误输出流;环境变量;加载文件和库;快速复制数组的一部分等。

2.重要方法:

static PrintStream err :标准错误输出流

static
InputStream in 
:标准输入流

static
PrintStream out 
:标准输出流

static
void exit(int status)
:提前终止虚拟机的运行。对于发生了异常情况而项终止虚拟机的运行,传递一个非零值作为参数。对于在用户正常操作下,终止虚拟机的运行,传递零值作为参数;

static long CurrentTimeMillis():返回自1970年1月1日0点0分0秒起至今的以毫秒为单位的时间,这是一个long类型的大数值。

static Properties getProperties():获取当前虚拟机的环境属性。类似于Windows的环境属性,其中path和classpath就是两个环境变量,每一个属性都是变量与值成对的形式出现。同样的道理,Java作为一个虚拟的操作系统,它也有自己的环境属性,Properties是Hashtable的子类,正好可以用于存储环境属性中多个变量/值对格式的数据。getProperties方法返回值是包含了当前虚拟机的所有环境属性的Properties类型的对象。

static
String setProperty(String key, String value):设置新的环境变量

static
void load(String filename):加载一个本地文件

3.System应用开发技巧

(1)计算一段程序代码运行时所花费的时间

Long  startTime=System.currentTimeMillis();

......//代码段

Long endTime=System.currentTimeMillis();//其中Long为数据类型类, endTime为对象而非长整型变量

System.out.println("total time expended is" + (starttime-endTime)+"milliseconds");

(2)实例源码

<span style="font-size:14px;">import java.util.Enumeration;
import java.util.Properties;
/*实现:获取Java虚拟机中所有环境变量*/
public class SystemInfo {
 public static void main(String[] args)
 {
  Properties p=System.getProperties();	//返回一个Properties实例对象
  Enumeration e=p.propertyNames();	 //返回Properties所有的键对象到Enumeration对象
  while(e.hasMoreElements())	 //检查Enumeration对象中所有元素是否遍历完
  {
   String key=(String) e.nextElement();	 //遍历属性列表中的每一个对象
   System.out.println(key+"="+p.getProperty(key));//打印属性列表中一个元素的键对象值及其对应的值对象的值
  }
 }
}</span>

效果如下:

参考:http://docs.oracle.com/javase/8/docs/api/index.html

时间: 2024-07-30 09:44:54

Java笔记十三.常用API-Runtime、Runable、System类的相关文章

Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar

正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在开发中,正则表达式通常被用来检索.替换那些符合某个规则的文本. 正则表达式的匹配规则 参照帮助文档,在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母.我们来学习语法规则. 正则表达式的语法规则: 字符:x 含义:代表的是字符x 例如:匹配规则为 "a",那么需要

Java笔记八.常用APIの字符串

字符串处理类与接口 一.String类和StringBuffer类 1.字符串类 Java定义String和StringBuffer两个类来封装对字符串的各种操作,他们都被放到java.lang包中. (1)String类:String类对象的内容一旦被初始化就不能再改变,String类用于比较两个字符串.查找和抽取串中的字符或子串;字符串与其他类型之间的相互转换等.字符间的串联,则需使    用StringBuffer或者StringBuilder或"+"方法. (2)StringB

Java笔记九.常用APIの数据类型包装类

数据类型包装类 一.概述 Java对数据既提供基本数据的简单类型,也提供了相应的包装类.使用基本简单数据类型,可以改善系统的性能,也能够满足大多数应用需求.但是,简单类型不具有对象的特性,不能满足某些特殊的需求.比如Java中很多类的很多方法的参数类型都是对象,如Integer类来包装整数,我们可以使用Integer对象很容易地实现整数与字符串的转换. 二.Integer类(java.lang.Object ->java.lang.Number) 整数类包装的原始类型int对象的值,一个整数类型

hadoop java接口及常用api

# java接口及常用api package com.yting.hadoop.hdfs; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FSDataInputS

Runtime、System类

/*Runtime对象:该类并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的.发现该类中还有非静态方法.说明该类肯定会提供了方法获取本类对象,并且该方法是静态的,并返回值类型是本类类型. 由这个特点可以看出该类使用了单例设计模式完成. 该方法是static Runtime getRuntime(); */ public class RuntimeDemo { public static void main(String[] args) throws Exceptio

java基础(15):常用API(Object、String、StringBuffer)

1. Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象的关系.接下来我们开始使用对象做事情,那么在使用对象做事情之前,我们要学习一些API中提供的常用对象.首先在学习API中的Object类之前,先来学习如何使用API. 1.1 Java 的API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底层的代码实现封装了

Java学习随笔---常用API(二)

Object类的toString方法 将一个对象返回为字符串形式,但一般使用的时候会覆盖重写toString方法 Object类是所有类的父亲 // public class Person { private String name; private int age; //============================================================================= public String toString(){//toString

Activiti学习笔记五 — 常用API解析

常用API解析: 一.ProcessEngineConfiguration 流程引擎配置对象(配置数据库连接4个大配置和建表策略) 二.ProcessEngine          流程引擎核心对象(服务大管家) 三.RepositoryService     仓库服务.管理规则相关的信息. 四.RuntimeService     运行时服务. 负责流程的启动,查看,执行等操作. 五.TaskService          任务服务.管理任务的查看,接手,办理等操作. 六.规则管理相关: 1

Selenium2(java)selenium常用API 四

WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.click(); 由元素对象调用click()方法:   2.清除操作 WebElement username = driver.findElement(By.id("username_input")); username.clear(); 调用之后,会把输入框的内容全部清空:   3.获得元素属性