Java常用实体类--System类

字符串、日期、数字是Java程序中最常使用的数据对象,对这些数据的创建、修改、格式化和转换等操作融入在Java程序的每个角落,必须熟练掌握。本节将通过实例演示以下常用实体类

  • Java系统级类:系统类System、运行时类Runtime
  • Java字符串处理类:字符串类String、字符串分隔符类StringTokenizer、线程安全的可变字符串类StringBuffer、可变字符串类StringBuilder
  • Java日期处理类:日期类Date、日期格式化类DateFormate、日历类Calendar
  • Java数字处理类:数学类Math、随机类Radom、数学类Float、Double、Integer、Long

1、Java系统级类

系统类System:访问系统属性、访问环境变量、加载文件和库、快速复制数组、取得系统时间、系统推出命令、执行垃圾回收

运行时类Runtime:查看系统内存、终止JVM虚拟机、运行系统程序、使用关闭钩子

1.1访问系统属性

例如获取操作系统名称os.name、操作系统版本os.version、JVM名称java.vm.name、JDK版本java.version等。系统属性集合如表1-1示

表1-1    系统属性键值

java.version Java运行时环境版本
java.vendor Java运行时供应商
java.home Java安装目录
java.vm.version Java虚拟机版本
java.vm.name Java虚拟机名称
java.class.version Java类格式版本号
java.class.path Java类路径
os.name 操作系统的名称
os.version 操作系统的版本
file.separator 文件分隔符
path.separator 路径分隔符
line.separator 行分隔符
user.dir 用户当前工作目录

System共有两种方法访问系统属性

(1)、取得所有系统属性列表

使用System.getProperties()函数将取得一个Properties对象,该对象包含了所有系统属性的键值对。然后转化为迭代器Enumeration对象额,然后使用while()循环显示输出所有的key和value。

package org.test.envm;

import java.util.Enumeration;
import java.util.Properties;

public class SystemEnvm {

	public static void main(String[] args) {
		// 取得系统属性列表
		Properties properties = System.getProperties();
		Enumeration<Object> e = properties.keys();
		while(e.hasMoreElements()){
			String key = (String) e.nextElement();
			String value = properties.getProperty(key);
			System.out.println(key+" = "+value);
		}

	}

}

显示结果如下:

java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jre6\bin
java.vm.version = 20.14-b01
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 = CN
sun.os.patch.level = Service Pack 1
java.vm.specification.name = Java Virtual Machine Specification
user.dir = D:\workspace\new1_workspace\thread
java.runtime.version = 1.6.0_39-b04
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs = C:\Program Files\Java\jre6\lib\endorsed
os.arch = amd64
java.io.tmpdir = C:\Users\ADMINI~1\AppData\Local\Templine.separator = 

java.vm.specification.vendor = Sun Microsystems Inc.
user.variant = 
os.name = Windows 7
sun.jnu.encoding = GBK
java.library.path = C:\Program Files\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.7.0_71\bin;C:\Program Files\Java\jdk1.7.0_71\jre\bin;D:\soft\apache-maven-3.0.5\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Subversion\bin;D:\soft\apache-tomcat-7.0.56\bin;.
java.specification.name = Java Platform API Specification
java.class.version = 50.0
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
os.version = 6.1
user.home = C:\Users\Administrator
user.timezone = 
java.awt.printerjob = sun.awt.windows.WPrinterJob
file.encoding = GBK
java.specification.version = 1.6
java.class.path = D:\workspace\new1_workspace\thread\bin
user.name = Administrator
java.vm.specification.version = 1.0
sun.java.command = org.test.envm.SystemEnvm
java.home = C:\Program Files\Java\jre6
sun.arch.data.model = 64
user.language = zh
java.specification.vendor = Sun Microsystems Inc.
awt.toolkit = sun.awt.windows.WToolkit
java.vm.info = mixed mode
java.version = 1.6.0_39
java.ext.dirs = C:\Program Files\Java\jre6\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path = C:\Program Files\Java\jre6\lib\resources.jar;C:\Program Files\Java\jre6\lib\rt.jar;C:\Program Files\Java\jre6\lib\sunrsasign.jar;C:\Program Files\Java\jre6\lib\jsse.jar;C:\Program Files\Java\jre6\lib\jce.jar;C:\Program Files\Java\jre6\lib\charsets.jar;C:\Program Files\Java\jre6\lib\modules\jdk.boot.jar;C:\Program Files\Java\jre6\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
sun.desktop = windows
sun.cpu.isalist = amd64

(2)、取得某一个系统属性的值

如果我们知道要查询的属性的键,也可以直接使用System.getProperties(key)直接取得该键的值。

// TODO 取得某一系统属性值
    String osname = System.getProperty("os.name");//取得os.name
    String osversion = System.getProperty("os.version");//取得os.version
    String fileSep = System.getProperty("file.separator");
    System.out.println("操作系统名称:"+osname);
    System.out.println("操作系统版本:"+osversion);
    System.out.println("文件分隔符:"+fileSep);

显示结果如下:

操作系统名称:Windows 7
操作系统版本:6.1
文件分隔符:\

1.2、访问环境变量

系统属性是系统固有属性,不能够被修改。环境变量是可修改的。环境变量包括系统变量和用户变量。

用System取得环境变量。

(1)取得所有环境变量列表

使用System.getenv()函数将取得一个Map对象,该对象包含了所有环境变量的键值对。使用该函数去除了对象列表map,然后迭代,使用while()循环输出

// 得到环境变量列表
		Map<String, String> getenv = System.getenv();
		Iterator<String> iterator = getenv.keySet().iterator();
		while(iterator.hasNext()){
			String key = iterator.next();
			System.out.println(key + " = " + getenv.get(key));
		}

取得结果如下:

USERPROFILE = C:\Users\Administrator
JAVA_HOME = C:\Program Files\Java\jdk1.7.0_71
TOMCAT_CLASSPATH = .;D:\soft\apache-tomcat-7.0.56\lib\servlet-api.jar
SystemDrive = C:
#envTSLOGsss2796 = 75890384
Path = C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jdk1.7.0_71\bin;C:\Program Files\Java\jdk1.7.0_71\jre\bin;D:\soft\apache-maven-3.0.5\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Lenovo\Fingerprint Manager Pro\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Subversion\bin;D:\soft\apache-tomcat-7.0.56\bin
#envTSLOGXMediaLibrary2796 = 178637744
PROCESSOR_REVISION = 3c03
USERDOMAIN = WIN-RO8HM9VF60I
ALLUSERSPROFILE = C:\ProgramData
CATALINA_BASE = D:\soft\apache-tomcat-7.0.56
SESSIONNAME = Console
TMP = C:\Users\ADMINI~1\AppData\Local\Temp
#envKKPRbc_Cmdilne = 
LOGONSERVER = \\WIN-RO8HM9VF60I
=:: = ::CommonProgramFiles = C:\Program Files\Common Files
PROCESSOR_LEVEL = 6
LOCALAPPDATA = C:\Users\Administrator\AppData\Local
COMPUTERNAME = WIN-RO8HM9VF60I
SystemRoot = C:\Windows
USERNAME = Administrator
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
TOMCAT_HOME = D:\soft\apache-tomcat-7.0.56
APPDATA = C:\Users\Administrator\AppData\Roaming
ProgramData = C:\ProgramData
PATHEXT = .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
windows_tracing_logfile = C:\BVTBin\Tests\installpackage\csilogfile.log
MAVEN_HOME = D:\soft\apache-maven-3.0.5
ProgramFiles(x86) = C:\Program Files (x86)
windows_tracing_flags = 3
TEMP = C:\Users\ADMINI~1\AppData\Local\Temp
ProgramFiles = C:\Program Files
HOMEDRIVE = C:
TNS_ADMIN = C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
ProgramW6432 = C:\Program Files
PROCESSOR_IDENTIFIER = Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
ShellLaunch{A81BA54B-CCFE-4204-8E79-A68C0FDFA5CF} = ShellExt
CLASSPATH = .;C:\Program Files\Java\jdk1.7.0_71\lib;C:\Program Files\Java\jdk1.7.0_71\lib\tools.jar
PROCESSOR_ARCHITECTURE = AMD64
FP_NO_HOST_CHECK = NO
OS = Windows_NT
HOMEPATH = \Users\Administrator
JRE_HOME = C:\Program Files\Java\jre7
#envTSLOGRBCShellExt2796 = 2178528
CommonProgramW6432 = C:\Program Files\Common Files
APR_ICONV_PATH = C:\Program Files (x86)\Subversion\iconv
CATALINA_HOME = D:\soft\apache-tomcat-7.0.56
windir = C:\Windows
NUMBER_OF_PROCESSORS = 4
PSModulePath = C:\Windows\system32\WindowsPowerShell\v1.0\ModulesPUBLIC = C:\Users\Public
CommonProgramFiles(x86) = C:\Program Files (x86)\Common Files
ComSpec = C:\Windows\system32\cmd.exe

取得某一变量值,直接调用System.getenv(key)即可。

1.3、加载文件和库

  • 函数load(String fileName)的作用是,从作为动态库的本地文件系统中以指定的文件名加载代码文件,文件名参数必须是完整的路径。

1.4 退出系统命令Runtime.getRuntime().exit(n);

1.5 垃圾回收:System.gc()

1.6 取得系统时间:System.currentTimeMillis()

1.7 快速复制数组:void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

时间: 2024-10-30 15:39:35

Java常用实体类--System类的相关文章

java常用API之System类

System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象.System类中的都是static方法,类名访问即可. 常用方法: l  currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值 l  exit(int status) 用来结束正在运行的Java程序.参数传入一个数字即可.通常传入0记为正常状态,其他为异常状态 l  gc() 用来运行J

Java常用正则表达式验证工具类RegexUtils.java

原文:Java常用正则表达式验证工具类RegexUtils.java 源代码下载地址:http://www.zuidaima.com/share/1550463379442688.htm Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP .... 常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证

第1章 Object类 &amp; System类

1.1 Object类1.1.1 概述Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.所有类在创建对象的时候,最终找的父类就是Object.在Object类众多方法中,我们先学习equals方法与toString方法,其他方法后面课程中会陆续学到.1.1.2 获取字节码对象的方式1.通过Object类的getClass()方法获取2.通过类名调用属性class来获取 通过Class类的静态方法forName()来获取1.1.2.1 案例代码一 packag

Java常用实体类

System类 访问系统属性 - 遍历 1 package org.zln.usefulclass.system; 2 3 import java.util.Properties; 4 5 /** 6 * Created by sherry on 000024/6/24 23:08. 7 */ 8 public class TestSystemProperty { 9 public static void main(String[] args) { 10 //showSystemProperti

Java常用实体类--Runtime类

System许多函数的使用都是等价于Runtime.getRuntime(),可见System和Runtime之间的联系是多么密切,实际上System是依赖于Runtime类的. Runtime的功能如下: 查看系统内存 终止JVM虚拟机 运行系统程序 使用关闭钩子 Runtime类不同于System类,它的函数大部分都不是静态的,只有一个静态函数getRuntime().每个Java应用程序都有一个Runtime实例,使应用程序能够与其运行环境相连接,我们可通过该函数获得一个Runtime()

java 静态导入、System类、Date类、Runtime类、Calendar类、Collections类中的shuffle方法、Math类

/* JDK1.5版本新特性(续):静态导入 注意:当类名重名时,需要指定具体的包名: 当方法名重名时,需要指定具体的类名. */ import java.util.*; import static java.util.Arrays.*;//导入Arrays工具类中的所有静态成员. import static java.lang.System.*;//导入了System类中所有的静态成员,注意System类中的成员都是静态的. class StaticImport { public static

Java常用API及Math类

一.API的概述 API--Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数: 目的:基于API实现程序的快速编写,只需了解其作用,不用关注源代码. 学习API的方法:先了解API的概况.作用,再看构造函数了解如何创建使用类,最后看方法了解如何调用. 二.数值运算 Math类 1.概述 出自java.lang包(核心包,提供对java编程语言设计至关重要的类,可以直接使用,不用import): Math类包含执行基本数字运算的方

Object类.时间日期类.System类.Stringbuilder类.包装类

Object类 java.lang.Object类是java语言中的根类,即所有类的父类.它中描述的所有方法都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类,那么默认则继承自Object类.例如: 自己随便定义的一个类: public void Demo{ //......... } 根据JDK源码和Object类的API文档,Object类当中包含的方法有11个,然后,我只挑选了两个来做重点介绍: public String toString():返回

处理时间的类 —— System类、Date类 、SimpleDateFormat类 与 Calendar类

在我们以往的编程中,就有过通过运行前和运行后时间差来判断时间复杂度的例子,再扯得远一点,我们在C语言中制造随机数的操作,也要用到有关时间的函数.而且,在我们未来的编程中,也会时不时要用到能够读取当前时间的方法,所以,本篇博文所讲解的类,其实还是挺常用的,所以本人专门写一篇博文来为同学们展示下这个类的常用方法的用法 System类: 概述: System 类包含一些有用的类字段和方法.它不能被实例化. 说真的,System类与时间相关的主要原因就是它的一个方法,那么,现在,本人来展示下这个类的常用