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

原创 2015年07月09日 09:39:23

------- <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");
    }
}


运行结果:



黑马程序员 java基础<一>--其它对象System、Runtime(1)

-------android培训、java培训、java学习型技术博客、期待与您交流! ---------- 一:System类: Java中使用的System对象,我们经常使用的是Sys...
  • SSSSword
  • SSSSword
  • 2013年04月23日 23:42
  • 558

Java基础回顾 : Runtime类和System类

1、 Runtime 类的使用,Runtime 类的定义特点 :  ★ . Runtime类的介绍 : Runtime 指的是运行时,当每一个JVM 进程启动的时候,都会存在有一个Runtime ...
  • sinat_18882775
  • sinat_18882775
  • 2016年05月26日 22:11
  • 653

JAVA API系列----System与Runtime类

·Java不支持全局函数和全局变量,Java将一些与系统相关的重要的函数和变量统一放在System类中。·System类中所有的成员都是静态的(static),使用时可以直接用类名System做前缀,...
  • yitongfling
  • yitongfling
  • 2011年03月23日 12:23
  • 2677

黑马程序员——Java基础测试题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 黑马程序员——Java基础测试题 第1题:以下代码哪个是正确的?为什么?   a. byte...
  • liu007004
  • liu007004
  • 2015年01月16日 12:49
  • 1435

黑马程序员——Java基础---练习题

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- Java基础---练习题 1.写出程序结果class Demo { public stat...
  • liu007004
  • liu007004
  • 2015年01月19日 16:35
  • 704

黑马程序员_Java 其它对象(System Runtime Date Calendar Math)

Java 其它对象(System  Runtime  Date  Calendar  Math)   System     System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位...
  • u013700004
  • u013700004
  • 2014年03月10日 18:55
  • 500

黑马程序员--Java基础面试题整理

------- android培训、java培训、期待与您交流! Java面试题整理(自己学习过程中整理的重点题目,为面试做准备) 编程基础 1.(面试题): ...
  • wwj101004
  • wwj101004
  • 2014年10月31日 23:09
  • 821

Java中系统相关的类:System类、Runtime类

Java程序在不同操作系统上运行时,可能需要取得平台相关的属性,或者调用平台命令来完成特点功能。Java提供了System类和Runtime类来与程序的运行平台进行交互。一、System类System...
  • OREO_GO
  • OREO_GO
  • 2016年08月07日 12:49
  • 1691

System类、RunTime类

一、System 系统类 1、作用:主要用于获取系统的属性数据。2、System类常用的方法: 1)arraycopy(Object src, int srcPos, Object dest, i...
  • qq_34944851
  • qq_34944851
  • 2016年11月05日 23:52
  • 177

传智 刘意 2015年Java基础视频-深入浅出精华版 笔记 day24~day26(2016年4月26日13:11:30)

day24 1.多线程(JDK5之后的Lock锁的概述和使用)   Lock:           void lock(): 获取锁。           void unlock():释放锁。 ...
  • juliantem
  • juliantem
  • 2016年04月15日 00:40
  • 5031
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员-Java基础其它对象(System和Runtime)
举报原因:
原因补充:

(最多只允许输入30个字)