关闭

黑马程序员-Java基础其它对象(System和Runtime)

91人阅读 评论(0) 收藏 举报

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

一、System类

1、定义:

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

在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法。

2、常用字段和方法:

常用字段如下:

          static InputStream in -> “标准”输入流(比如:键盘)。

          static PrintStream out -> “标准”输出流(比如:控制台)。

常用方法如下:

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

        Properties getProperties() -> 确定当前系统属性。

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

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

3、练习

package com.itheima;
import java.util.Properties;

/**
 * System类: 系统相关的类,提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法。
 * @author jjy
 */
public class SystemDemo{
    
    public static void main(String args[]) {
    
    Properties prop = System.getProperties();
    
    //设置系统属性
    System.setProperty("myKey","myvalue");
    
    //获取制定属性信息
    System.getProperty("os.name");
    
    for(Object obj:prop.keySet()){
    String value = (String)prop.get(obj);
    System.out.println(obj+"=="+value);
    }
    }
}


运行结果:

java.runtime.name==Java(TM) SE Runtime Environment
sun.boot.library.path==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\bin
java.vm.version==11.3-b02
java.vm.vendor==Sun Microsystems Inc.
java.vendor.url==http://java.sun.com/
path.separator==;
java.vm.name==Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg==sun.io
sun.java.launcher==SUN_STANDARD
user.country==US
sun.os.patch.level==Service Pack 1
java.vm.specification.name==Java Virtual Machine Specification
user.dir==D:\Workspaces\MyEclipse 10\exam
java.runtime.version==1.6.0_13-b03
java.awt.graphicsenv==sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\endorsed
os.arch==amd64
java.io.tmpdir==C:\Users\IN\AppData\Local\Temp\
line.separator==
java.vm.specification.vendor==Sun Microsystems Inc.
user.variant==
os.name==Windows Vista
sun.jnu.encoding==Cp1252
java.library.path==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files (x86)\Common Files\Lenovo;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;C:\SWTOOLS\ReadyApps
java.specification.name==Java Platform API Specification
java.class.version==50.0
sun.management.compiler==HotSpot 64-Bit Server Compiler
os.version==6.1
user.home==C:\Users\IN
user.timezone==
java.awt.printerjob==sun.awt.windows.WPrinterJob
file.encoding==UTF-8
java.specification.version==1.6
java.class.path==D:\Workspaces\MyEclipse 10\exam\bin
user.name==IN
java.vm.specification.version==1.0
java.home==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre
sun.arch.data.model==64
user.language==en
java.specification.vendor==Sun Microsystems Inc.
awt.toolkit==sun.awt.windows.WToolkit
java.vm.info==mixed mode
java.version==1.6.0_13
java.ext.dirs==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path==C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\resources.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\rt.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\sunrsasign.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\jsse.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\jce.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\lib\charsets.jar;C:\Users\IN\AppData\Local\MyEclipse\Common\binary\com.sun.java.jdk.win32.x86_64_1.6.0.013\jre\classes
java.vendor==Sun Microsystems Inc.
file.separator==\
java.vendor.url.bug==http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding==UnicodeLittle
sun.cpu.endian==little
myKey==myvalue
sun.desktop==windows
sun.cpu.isalist==amd64


二、Runtime类

 * Runtime对象
 * 该类并没有提供构造函数
 * 说明不可以new对象。那么会直接想到该类中的方法都是静态的
 * 发现该类中还有非静态方法
 * 说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回至类型是本类类型
 * 由这个特点可以看出该类使用了单例设计模式完成
1、定义:


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

应用程序不能创建自己的 Runtime 类实例。



2、常用方法:
    exec(String command) -> 在单独的进程中执行指定的字符串命令。


3、练习

package com.itheima;

/**
 * runtime对象
 * 该类并没有提供构造函数
 * 说明不可以new对象。那么会直接想到该类中的方法都是静态的
 * 发现该类中还有非静态方法
 * 说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回至类型是本类类型
 * 由这个特点可以看出该类使用了单例设计模式完成
 * 
 * 该方式是static Runtime getRuntime();
 * @author jjy
 */
public class RuntimeDemo{
    
    public static void main(String args[])throws Exception { 
    Runtime r = Runtime.getRuntime();
    r.exec("C:\\Users\\IN\\AppData\\Local\\Youdao\\Dict\\Application\\YodaoDict.exe");
    }
}


运行结果:



一、Runtime类

 * Runtime对象
 * 该类并没有提供构造函数
 * 说明不可以new对象。那么会直接想到该类中的方法都是静态的
 * 发现该类中还有非静态方法
 * 说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回至类型是本类类型
 * 由这个特点可以看出该类使用了单例设计模式完成
1、定义:


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

应用程序不能创建自己的 Runtime 类实例。



2、常用方法:
    exec(String command) -> 在单独的进程中执行指定的字符串命令。


3、练习

package com.itheima;

/**
 * runtime对象
 * 该类并没有提供构造函数
 * 说明不可以new对象。那么会直接想到该类中的方法都是静态的
 * 发现该类中还有非静态方法
 * 说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回至类型是本类类型
 * 由这个特点可以看出该类使用了单例设计模式完成
 * 
 * 该方式是static Runtime getRuntime();
 * @author jjy
 */
public class RuntimeDemo{
    
    public static void main(String args[])throws Exception { 
    Runtime r = Runtime.getRuntime();
    r.exec("C:\\Users\\IN\\AppData\\Local\\Youdao\\Dict\\Application\\YodaoDict.exe");
    }
}


运行结果:



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:562次
    • 积分:111
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档