1、java中的System类的一些应用和日期的操作实例Java中的System类System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的,所以也可以很方便的进行调用。1、成员变量System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)。例如:System.out.println(“Test”);该行代码的作用是将字符串”Test”输出到系统的标准输出
2、设备上,也就是显示在屏幕上。后续在学习完IO相关的知识以后,可以使用System类中的成员方法改变标准输入流等对应的设备,例如可以将标准输出流输出的信息输出到文件内部,从而形成日志文件等。2、成员方法System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:a、arraycopy方法public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比
3、使用循环高效。使用示例:int a = 1,2,3,4;int b = new int5;System.arraycopy(a,1,b,3,2);该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a1复制给b3,将a2复制给b4,这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成0,0,0,2,3。b、currentTimeMillis方法public static long currentTimeMillis()该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所
4、差的毫秒数。例如:long l = System. currentTimeMillis();则获得的将是一个长整型的数字,该数字就是以差值表达的当前时间。使用该方法获得的时间不够直观,但是却很方便时间的计算。例如,计算程序运行需要的时间则可以使用如下的代码:long start = System. currentTimeMillis();for(int i = 0;i 100000000;i+)int a = 0;long end = System. currentTimeMillis();longtime = end start;则这里变量time的值就代表该代码中间的for循环执行需要的毫
5、秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。c、exit方法public static void exit(int status)该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。d、gc方法public static void gc()该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。e、getProperty方法public static String getProperty(String key
6、)该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示。属性名列表属性名属性说明java.versionJava运行时环境版本java.homeJava安装目录os.name操作系统的名称os.version操作系统的版本user.name用户的账户名称user.home用户的主目录user.dir用户的当前工作目录例如:String osName = System.getProperty(“os.name”);String user = System.getProperty(“user.name”);System.out.println(“当前操作
7、系统是:” + osName);System.out.println(“当前用户是:” + user);使用该方法可以获得很多系统级的参数以及对应的值。java中的System类的一些应用和日期的操作实例/* author Rollen-Holt 计算一个程序的执行时间*/classhellopublicstaticvoidmain(String args)longstartTime = System.currentTimeMillis();for(inti = 0; i 1000000; +i) String str=newString(dad);longendTime=System.cur
8、rentTimeMillis();System.out.println(程序的运行时间为: +(endTime-startTime)+毫秒);【运行结果】:程序的运行时间为:28毫秒123456789/* author Rollen-Holt* 获取本机的一些属性*/classhellopublicstaticvoidmain(String args)System.getProperties().list(System.out);【运行结果】:- listing properties -java.runtime.name=Java(TM) SE Runtime Environmentsun.b
9、oot.library.path=D:Program FilesJavajdk1.6.0_23jre.java.vm.version=19.0-b09java.vm.vendor=Sun Microsystems Inc.java.vendor.url=path.separator=;java.vm.name=Java HotSpot(TM) Client VMfile.encoding.pkg=sun.iouser.country=CNsun.java.launcher=SUN_STANDARDsun.os.patch.level=Service Pack 1java.vm.specific
10、ation.name=Java Virtual Machine Specificationuser.dir=F:我的文件我的资料我的学习资料我的程序javahellojava.runtime.version=1.6.0_23-b05java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironmentjava.endorsed.dirs=D:Program FilesJavajdk1.6.0_23jre.os.arch=x86java.io.tmpdir=C:UsersROLLEN1AppDataLocalTempline.separator=java.vm
11、.specification.vendor=Sun Microsystems Inc.user.variant=os.name=Windows 7sun.jnu.encoding=GBKjava.library.path=D:Program FilesJavajdk1.6.0_23bin.java.specification.name=Java Platform API Specificationjava.class.version=50.0piler=HotSpot Client Compileros.version=6.1user.home=C:UsersRollen-Holtuser.t
12、imezone=java.awt.printerjob=sun.awt.windows.WPrinterJobfile.encoding=GBKjava.specification.version=1.6user.name=Rollen-Holtjava.class.path=F:我的文件我的资料我的学习资料我的程序javahellobinjava.vm.specification.version=1.0sun.arch.data.model=32java.home=D:Program FilesJavajdk1.6.0_23jrejava.specification.vendor=Sun M
13、icrosystems Inc.user.language=zhawt.toolkit=sun.awt.windows.WToolkitjava.vm.info=mixed mode, sharingjava.version=1.6.0_23java.ext.dirs=D:Program FilesJavajdk1.6.0_23jre.sun.boot.class.path=D:Program FilesJavajdk1.6.0_23jre.java.vendor=Sun Microsystems Inc.file.separator=java.vendor.url.bug=sun.cpu.e
14、ndian=littlesun.io.unicode.encoding=UnicodeLittlesun.desktop=windowssun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m.12345678910111213141516171819/* author Rollen-Holt* 获取本机的指定属性*/classhellopublicstaticvoidmain(String args)/操作系统名称System.out.println(System.getProperty(os.name);/系统版本System.out.pr
15、intln(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);【运行结果】:Windows 76.1x86Rollen-HoltC:UsersRollen-HoltF:
16、我的文件我的资料我的学习资料我的程序javahello1234567891011121314151617181920212223242526/* author Rollen-Holt* System类的gc方法*/classPersonPerson(String name)this.name=name;publicString toString()returnthis.name;publicvoidfinalize()System.out.println(对象释放+this);privateString name;classhellopublicstaticvoidmain(String ar
17、gs)Person per=newPerson(Rollen);per=null;System.gc();【运行结果】:对象释放Rollen123456789/* 一些常用的日期操作类* */importjava.util.Date;classhellopublicstaticvoidmain(String args)System.out.println(newDate();12345678910111213141516/* 一些常用的日期操作类* */importjava.util.*;classhellopublicstaticvoidmain(String args)Calendar c
18、al=newGregorianCalendar();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.S
19、ECOND);System.out.println(毫秒+cal.get(Calendar.MILLISECOND);【运行结果】:年2011月8日22时9分50秒31毫秒48012345678910111213/* DateFormat类* */importjava.util.*;importjava.text.*;classhellopublicstaticvoidmain(String args)DateFormat dal1=DateFormat.getDateInstance();DateFormat dal2=DateFormat.getDateTimeInstance();Sys
20、tem.out.println(日期+dal1.format(newDate();System.out.println(日期时间+dal2.format(newDate();【运行结果】:日期2011-8-22日期时间2011-8-22 21:55:081234567891011121314/* DateFormat类* */importjava.util.*;importjava.text.*;classhellopublicstaticvoidmain(String args)DateFormat dal1=DateFormat.getDateInstance(DateFormat.YEA
21、R_FIELD,newLocale(zh,CN);DateFormat dal2=DateFormat.getDateTimeInstance(DateFormat.YEAR_FIELD,DateFormat.ERA_FIELD,newLocale(zh,CN);System.out.println(日期+dal1.format(newDate();System.out.println(日期时间+dal2.format(newDate();【运行结果】:日期2011年8月22日日期时间2011年8月22日下午09时57分53秒CST1234567891011121314151617181920
22、2122232425/* SimpleDateFormat类* */importjava.util.*;importjava.text.*;classhellopublicstaticvoidmain(String args)String date=2011-08-22 10:11:30.345;/准备第一个模板String pat1=yyyy-MM-dd HH:mm:ss.SSS;/准备第二个模板String pat2=yyyy年-MM月-dd日 HH时 mm分 ss秒 SSS毫秒 ;SimpleDateFormat sim1=newSimpleDateFormat(pat1);Simple
23、DateFormat sim2=newSimpleDateFormat(pat2);Date d=null;tryd=sim1.parse(date);System.out.println(d);catch(Exception e)e.printStackTrace();System.out.println(sim2.format(d);Mon Aug 22 10:11:30 CST 20112011年-08月-22日10时11分 30秒345毫秒同时SimpleDateFormat也经常用于将String类型转换为Date类型1234567891011121314151617/* Simpl
24、eDateFormat类* */importjava.util.*;importjava.text.*;classhellopublicstaticvoidmain(String args)throwsParseExceptionString date =2011-08-22 10:11:30.345;String pat1 =yyyy-MM-dd HH:mm:ss.SSS;/ String pat2=yyyy年-MM月-dd日 HH时 mm分 ss秒 SSS毫秒 ;SimpleDateFormat sim1 =newSimpleDateFormat(pat1);Date d = sim1.parse(date);System.out.println(d);Mon Aug 22 10:11:30 CST 20111234
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1