java中的System类的一些应用和日期的操作实例.docx
- 文档编号:30331257
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:16
- 大小:19.42KB
java中的System类的一些应用和日期的操作实例.docx
《java中的System类的一些应用和日期的操作实例.docx》由会员分享,可在线阅读,更多相关《java中的System类的一些应用和日期的操作实例.docx(16页珍藏版)》请在冰豆网上搜索。
java中的System类的一些应用和日期的操作实例
Java中的System类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。
该类位于java.lang包。
由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。
其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。
1、成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。
例如:
System.out.println(“Test”);
该行代码的作用是将字符串”Test”输出到系统的标准输出设备上,也就是显示在屏幕上。
后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。
2、成员方法
System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:
a、arraycopy方法
publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength)
该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。
使用示例:
int[]a={1,2,3,4};
int[]b=newint[5];
System.arraycopy(a,1,b,3,2);
该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。
也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。
b、currentTimeMillis方法
publicstaticlongcurrentTimeMillis()
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
例如:
longl=System.currentTimeMillis();
则获得的将是一个长整型的数字,该数字就是以差值表达的当前时间。
使用该方法获得的时间不够直观,但是却很方便时间的计算。
例如,计算程序运行需要的时间则可以使用如下的代码:
longstart=System.currentTimeMillis();
for(inti=0;i<100000000;i++){
inta=0;
}
longend=System.currentTimeMillis();
long time=end–start;
则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。
c、exit方法
publicstaticvoidexit(intstatus)
该方法的作用是退出程序。
其中status的值为0代表正常退出,非零代表异常退出。
使用该方法可以在图形界面编程中实现程序的退出功能等。
d、gc方法
publicstaticvoidgc()
该方法的作用是请求系统进行垃圾回收。
至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
e、getProperty方法
publicstaticStringgetProperty(Stringkey)
该方法的作用是获得系统中属性名为key的属性对应的值。
系统中常见的属性名以及属性的作用如下表所示。
属性名列表
属性名
属性说明
java.version
Java 运行时环境版本
java.home
Java 安装目录
os.name
操作系统的名称
os.version
操作系统的版本
user.name
用户的账户名称
user.home
用户的主目录
user.dir
用户的当前工作目录
例如:
StringosName=System.getProperty(“os.name”);
Stringuser=System.getProperty(“user.name”);
System.out.println(“当前操作系统是:
”+osName);
System.out.println(“当前用户是:
”+user);
使用该方法可以获得很多系统级的参数以及对应的值。
java中的System类的一些应用和日期的操作实例
/**
*@authorRollen-Holt计算一个程序的执行时间
*/
class hello{
public static void main(String[]args){
long startTime=System.currentTimeMillis();
for(int i=0;i<1000000;++i){
Stringstr=new String("dad");
}
long endTime=System.currentTimeMillis();
System.out.println("程序的运行时间为:
"+(endTime-startTime)+"毫秒");
}
}
【运行结果】:
程序的运行时间为:
28毫秒
1
2
3
4
5
6
7
8
9
/**
*@authorRollen-Holt
*获取本机的一些属性
*/
class hello{
public static void main(String[]args){
System.getProperties().list(System.out);
}
}
【运行结果】:
--listingproperties--
java.runtime.name=Java(TM)SERuntimeEnvironment
sun.boot.library.path=D:
\ProgramFiles\Java\jdk1.6.0_23\jre...
java.vm.version=19.0-b09
java.vm.vendor=SunMicrosystemsInc.
java.vendor.url=
path.separator=;
java.vm.name=JavaHotSpot(TM)ClientVM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=ServicePack1
java.vm.specification.name=JavaVirtualMachineSpecification
user.dir=F:
\我的文件\我的资料\我的学习资料\我的程序\java\hello
java.runtime.version=1.6.0_23-b05
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:
\ProgramFiles\Java\jdk1.6.0_23\jre...
os.arch=x86
java.io.tmpdir=C:
\Users\ROLLEN~1\AppData\Local\Temp\
line.separator=
java.vm.specification.vendor=SunMicrosystemsInc.
user.variant=
os.name=Windows7
sun.jnu.encoding=GBK
java.library.path=D:
\ProgramFiles\Java\jdk1.6.0_23\bin...
java.specification.name=JavaPlatformAPISpecification
java.class.version=50.0
piler=HotSpotClientCompiler
os.version=6.1
user.home=C:
\Users\Rollen-Holt
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.6
user.name=Rollen-Holt
java.class.path=F:
\我的文件\我的资料\我的学习资料\我的程序\java\hello\bin
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=D:
\ProgramFiles\Java\jdk1.6.0_23\jre
java.specification.vendor=SunMicrosystemsInc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixedmode,sharing
java.version=1.6.0_23
java.ext.dirs=D:
\ProgramFiles\Java\jdk1.6.0_23\jre...
sun.boot.class.path=D:
\ProgramFiles\Java\jdk1.6.0_23\jre...
java.vendor=SunMicrosystemsInc.
file.separator=\
java.vendor.url.bug=
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmxpentium_propentium+m...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
*@authorRollen-Holt
*获取本机的指定属性
*/
class hello{
public static void main(String[]args){
//操作系统名称
System.out.println(System.getProperty("os.name"));
//系统版本
System.out.println(System.getProperty("os.version"));
System.out.println(System.getProperty("os.arch"));
//用户名
System.out.println(System.getProperty("user.name"));
//用户目录
System.out.println(System.getProperty("user.home"));
//当前的工作目录
System.out.println(System.getProperty("user.dir"));
}
}
【运行结果】:
Windows7
6.1
x86
Rollen-Holt
C:
\Users\Rollen-Holt
F:
\我的文件\我的资料\我的学习资料\我的程序\java\hello
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
*@authorRollen-Holt
*System类的gc方法
*/
class Person{
Person(Stringname){
this.name=name;
}
public StringtoString(){
return this.name;
}
public void finalize(){
System.out.println("对象释放"+this);
}
private Stringname;
}
class hello{
public static void main(String[]args){
Personper=new Person("Rollen");
per=null;
System.gc();
}
}
【运行结果】:
对象释放Rollen
1
2
3
4
5
6
7
8
9
/**
*一些常用的日期操作类
**/
import java.util.Date;
class hello{
public static void main(String[]args){
System.out.println(new Date());
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
*一些常用的日期操作类
**/
import java.util.*;
class hello{
public static void main(String[]args){
Calendarcal=new GregorianCalendar();
System.out.println("年"+cal.get(Calendar.YEAR));
System.out.println("月"+(cal.get(Calendar.MONTH)+1));
System.out.println("日"+cal.get(Calendar.DAY_OF_MONTH));
System.out.println("时"+cal.get(Calendar.HOUR));
System.out.println("分"+cal.get(Calendar.MINUTE));
System.out.println("秒"+cal.get(Calendar.SECOND));
System.out.println("毫秒"+cal.get(Calendar.MILLISECOND));
}
}
【运行结果】:
年2011
月8
日22
时9
分50
秒31
毫秒480
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
*DateFormat类
**/
import java.util.*;
import java.text.*;
class hello{
public static void main(String[]args){
DateFormatdal1=DateFormat.getDateInstance();
DateFormatdal2=DateFormat.getDateTimeInstance();
System.out.println("日期"+dal1.format(new Date()));
System.out.println("日期时间"+dal2.format(new Date()));
}
}
【运行结果】:
日期2011-8-22
日期时间2011-8-2221:
55:
08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
*DateFormat类
**/
import java.util.*;
import java.text.*;
class hello{
public static void main(String[]args){
DateFormatdal1=DateFormat.getDateInstance(DateFormat.YEAR_FIELD,new Locale("zh","CN"));
DateFormatdal2=DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,new Locale("zh","CN"));
System.out.println("日期"+dal1.format(new Date()));
System.out.println("日期时间"+dal2.format(new Date()));
}
}
【运行结果】:
日期2011年8月22日
日期时间2011年8月22日 下午09时57分53秒 CST
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
*SimpleDateFormat类
**/
import java.util.*;
import java.text.*;
class hello{
public static void main(String[]args){
Stringdate="2011-08-2210:
11:
30.345";
//准备第一个模板
Stringpat1="yyyy-MM-ddHH:
mm:
ss.SSS";
//准备第二个模板
Stringpat2="yyyy年-MM月-dd日HH时mm分 ss秒SSS毫秒";
SimpleDateFormatsim1=new SimpleDateFormat(pat1);
SimpleDateFormatsim2=new SimpleDateFormat(pat2);
Dated=null;
try{
d=sim1.parse(date);
System.out.println(d);
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(sim2.format(d));
}
}
MonAug2210:
11:
30CST2011
2011年-08月-22日 10时 11分 30秒 345毫秒
同时SimpleDateFormat也经常用于将String类型转换为Date类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/**
*SimpleDateFormat类
**/
import java.util.*;
import java.text.*;
class hello{
public static void main(String[]args) throws ParseException{
Stringdate= "2011-08-2210:
11:
30.345";
Stringpat1= "yyyy-MM-ddHH:
mm:
ss.SSS";
//Stringpat2="yyyy年-MM月-dd日HH时mm分 ss秒SSS毫秒";
SimpleDateFormatsim1= new SimpleDateFormat(pat1);
Dated=sim1.parse(date);
System.out.println(d);
}
}
MonAug2210:
11:
30CST2011
1
2
3
4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 中的 System 一些 应用 日期 操作 实例
![提示](https://static.bdocx.com/images/bang_tan.gif)